在使用QT(版本:5.15.2)进行 https 请求时,提示“TLS initialization failed”。其实是因为本地缺少OpenSSL的dll导致的。
1、代码查看协议版本
QString version = QSslSocket::sslLibraryBuildVersionString();//"OpenSSL 1.1.1g 21 Apr 2020"
bool support = QSslSocket::supportsSsl();
2、下载OpenSSL
- 下载OpenSSL源码,自行编译
https://www.openssl.org/source/ - 直接下载dll
http://slproweb.com/products/Win32OpenSSL.html
3、提取 libcrypto-1_1.dll、libssl-1_1.dll 文件
- 根据第一步查看到的协议版本进行下载,注意区分是win32还是win64的。
- 安装的时候,“Copy OpenSSL DLLs to”:选择 “The OpenSSL binaries(/bin) directory”
- 从安装目录下拷贝 libcrypto-1_1.dll、libssl-1_1.dll 到自己程序运行目录