簡體   English   中英

Qt 4.7 SSL錯誤:“證書已過期”

[英]Qt 4.7 SSL error : "The certificate has expired”

我們使用OpenSSL庫編譯了QT代碼。 但是我們無法加載HTTPS網頁。 SSL錯誤處理程序引發“證書已過期”異常。 我們使用http://orkut.com來測試SSL問題。

重新編譯Qt源之前發生了什么?

當我們嘗試啟動HTTPS網址時出現以下錯誤

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 -IC:\\OpenSSL-Win32\\Include -LC:\\OpenSSL-Win32\\Lib
  5. nmake

使用openSSL dll編譯后出現錯誤

  1. 當我們嘗試使用webview加載SSL url時,出現以下錯誤
  2. “證書已過期”
  3. 我們處理了sslErrors(QNetworkReply*,QList<QSslError>)事件,該事件顯示為“證書已過期”錯誤。
  4. 我們尚不清楚需要哪些其他設置來解決此問題

當我在32位系統中測試代碼時,OpenSSL dll可以按預期工作。 當我使用64位系統時,出現“證書過期”錯誤。 我正在使用Qt Creator 32位版本在64位系統中運行我的代碼。 我也使用OpenSSL 32位版本。

您檢查系統日期是否正確嗎?

UPDATE
看來您有32/64位不匹配的問題。
如果您的應用是64位,則應使用64位版本的OpenSSL。 從Creator中運行應用程序時,安裝64位OpenSSL並確保它位於PATH中(您可以在Projects / Run Settings / Run Environment中將OpenSSL的路徑添加到PATH)

您尚未正確部署-Qt在運行時無法找到openssl DLL,這就是為什么您收到無法調用未解決的函數消息的原因。 但是,不知道為什么會結合使用此證書而導致過期證書錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM