Qt-network.ssl QSslSocket:TLS初始化失敗等等問題


在使用QML的時候運行程序的時候遇到了好幾次類似以下問題:

qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

qt.network.ssl: QSslSocket: cannot resolve DTLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve DTLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_new
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_free
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_set_ssl_ctx
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_set_flags
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_finish
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_cmd
qt.network.ssl: QSslSocket: cannot resolve SSL_set_alpn_protos
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_alpn_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_alpn_selected
qt.network.ssl: QSslSocket: cannot resolve DTLS_server_method
qt.network.ssl: QSslSocket: cannot resolve DTLS_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function DTLS_client_method
————————————————————————————————————————————————

重點來了:最后總結了一下大概可以從以下方法解決:

1、對於Qt mingw版本用戶來說

 一般在:

C:\Qt\Qt 5.xx.x\Tools\mingw730_32\opt\bin(32位)

或者:

C:\Qt\Qt 5.xx.x\Tools\mingw730_32\opt\bin(64位)

目錄(以實際安裝路徑為准)可以找到  libeay32.dll ssleay32.dll 兩個文件

  1)復制這兩個文件到Qt工程生成可執行文件的目錄(即exe文件同目錄下)中去,再次運行,錯誤消失

  2)復制這兩個文件到C:\Qt\Qt 5.xx.x\Qt 5.xx.x\mingwxxx_xx\bin 的目錄下,再次運行,錯誤消失

  可以參考這篇文章:👉 (Qt-network.ssl問題報錯)

 

上方式一般對於mingw版本來說基本可以解決

2、對於Qt MSVC版本用戶來說

  A、可以隨便一個Qt C++工程中打印出openssl版本信息

#include <QSslSocket>
qDebug()<<QSslSocket::sslLibraryBuildVersionString();

 

5.12.3版本為例,執行打印出  OpenSSL 1.1.1b 26 Feb 2019 

  B、根據相應版本去下載OpenSSL的二進制文件,當然也可以選擇自己編譯,只不過有點麻煩

文件下載地址:http://slproweb.com/products/Win32OpenSSL.html

我下載的是Win64 OpenSSL v1.1.1d Light,完了之后安裝

 

 

 

   C、安裝好后在安裝目錄找到 libcrypto-1_1-x64.dll libssl-1_1-x64.dll 兩個文件 ,然后粘貼到

   C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin目錄再次運行,錯誤消失,完美解決

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM