天天看點

解決Qt5.12版本OpenSSL不能用問題: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile

一、系統環境介紹

windows下QT5.12

二、出現錯誤

使用QNetworkAccessManager報錯: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile

三、檢視目前環境openssl支援情況

   輸出目前QT支援的openSSL版本

qDebug()<<"QSslSocket="<<QSslSocket::sslLibraryBuildVersionString();      

 判斷系統是否支援OpenSSL

    如果此平台支援SSL,則傳回true; 否則,傳回false。 如果平台不支援SSL,則套接字将在連接配接階段失敗。不支援就需要看下面的解決方法。

qDebug() << "OpenSSL支援情況:" << QSslSocket::supportsSsl();      

四、解決辦法

openssl下載下傳位址:

http://slproweb.com/products/Win32OpenSSL.html
解決Qt5.12版本OpenSSL不能用問題: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile

根據自己使用的QT編譯器時32位還是64位,對應下載下傳安裝包。

将下載下傳的安裝包進行安裝,安裝到第二個選項時,選擇安裝到指定的/bin目錄下

安裝之後,找到安裝目錄下的兩個檔案(libcrypto-1_1.dll 和libssl-1_1.dll),拷貝到QT編譯器目錄下即可(C:\Qt\Qt5.12.6\5.12.6\mingw73_32\bin)。

解決Qt5.12版本OpenSSL不能用問題: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile

繼續閱讀