Russian Qt Forum

Qt => Работа с сетью => Тема начата: vipet от Сентябрь 25, 2007, 11:26



Название: SSL - как обойти ситуацию, когда сертификат не включает данный хост?
Отправлено: vipet от Сентябрь 25, 2007, 11:26

[Qt 4.3.1 комм., OpenSSL 0.9.8e]

socket.errorString() выдает:

"The host name did not match any of the valid hosts for this certificate."

Браузер файрфокс в таком случае выдаёт аналогичную инфу и спрашивает юзера что делать - продолжить или нет. Мне же надо просто продолжить. Только непонятно как это сделать, socket.ignoreSslErrors() вызываю, не помогло.



Название: Re: SSL - как обойти ситуацию, когда сертификат не включает данный хост?
Отправлено: QCasper от Сентябрь 25, 2007, 12:57
Я использую QHttp, там это делается так:

Код:
connect(m_Http, SIGNAL(sslErrors(const QList<QSslError> &)), m_Http, SLOT(ignoreSslErrors()));

где m_Http - указатель на объект класса QHttp.


Название: Re: SSL - как обойти ситуацию, когда сертификат не включает данный хост?
Отправлено: vipet от Сентябрь 25, 2007, 13:18
QCasper,

Делаю так (только не с QHttp, а с QSslSocket) и получаю ответ от сервера:

"403 Forbidden
You don't have permission to access on this server."

Пока не придумал ничего лучшего, чем отредактировать qsslcertificate.cpp, функция alternateSubjectNames, захардкодить туда имя хоста, чтобы он все время был в списке альтернативных имен. Откомпилю, отпишусь.


Название: Re: SSL - как обойти ситуацию, когда сертификат не включает данный хост?
Отправлено: vipet от Сентябрь 25, 2007, 20:03
После выполнения вышеописанных действий все заработало!!! ;D


Название: Re: SSL - как обойти ситуацию, когда сертификат не включает данный хост?
Отправлено: QCasper от Сентябрь 25, 2007, 20:47
То ты файлы проектов правишь, то прямо в исходники хардкодишь :) жесть...


Название: Re: SSL - как обойти ситуацию, когда сертификат не включает данный хост?
Отправлено: vipet от Сентябрь 25, 2007, 21:00
Цитировать
То ты файлы проектов правишь, то прямо в исходники хардкодишь Smiley жесть...

В файле проекта был баг с точки зрения линкера MS.

А исходник хардкодить - ну так надо было чтоб работало и работало сегодня!   :)