一、系統環境介紹
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根據自己使用的QT編譯器時32位還是64位,對應下載下傳安裝包。
将下載下傳的安裝包進行安裝,安裝到第二個選項時,選擇安裝到指定的/bin目錄下
安裝之後,找到安裝目錄下的兩個檔案(libcrypto-1_1.dll 和libssl-1_1.dll),拷貝到QT編譯器目錄下即可(C:\Qt\Qt5.12.6\5.12.6\mingw73_32\bin)。