Qt 4.7 Ошибка SSL: «Срок действия сертификата истек» - PullRequest
2 голосов
/ 16 марта 2011

Мы скомпилировали код QT, используя библиотеки OpenSSL. Но мы не можем загрузить веб-страницы HTTPS. Обработчик ошибок SSL выдает исключение «Срок действия сертификата истек». мы использовали http://orkut.com для проверки проблем с SSL.

Что происходило до перекомпиляции исходного кода Qt?

Следующие ошибки при попытке запустить HTTPS urls

QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
QSslSocket: cannot call unresolved function ERR_error_string

Что мы сделали?

  1. Загрузите и установите Win32 OpenSSL v1.0.0d Light
  2. Открыть командную строку VS2008
  3. Перейдите к «C: \ Qt \ 4.7.1»
  4. configure.exe -debug-and-release -webkit -openssl -I C:\OpenSSL-Win32\Include -L C:\OpenSSL-Win32\Lib
  5. nmake

Ошибка после компиляции с openSSL dll

  1. когда мы пытаемся загрузить URL-адрес SSL с помощью webview, мы получаем следующую ошибку
  2. «Срок действия сертификата истек»
  3. Мы обработали событие networkAccessManager sslErrors(QNetworkReply*,QList<QSslError>), которое показывалось как ошибка «истек срок действия сертификата».
  4. Нам неясно, какие дополнительные настройки необходимы для решения этой проблемы

когда я тестировал свой код в 32-битной системе, DLL-библиотека OpenSSL работала в соответствии с ожиданиями. Когда я использую 64-битную систему, я получаю ошибку «Срок действия сертификата истек». Я использую 32-разрядную версию Qt Creator для запуска моего кода в 64-разрядной системе. также я использую 32-битную версию OpenSSL.

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Проверяли ли вы правильность системной даты?

UPDATE
Похоже, у вас проблема с несовпадением 32/64 бит.
Если ваше приложение 64-битное, вы должны использовать 64-битную версию OpenSSL. Установите 64-битный OpenSSL и убедитесь, что он находится в PATH при запуске вашего приложения из Creator (вы можете добавить путь OpenSSL к PATH в Projects / Run Settings / Run Environment)

0 голосов
/ 16 марта 2011

Вы не развернули должным образом - Qt не может найти DLL-библиотеку openssl во время выполнения, поэтому вы получаете сообщения о невозможности вызова неразрешенной функции.Не знаю, почему вы получите ошибку сертификата с истекшим сроком действия в сочетании с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...