基于windows qt5使用https协议出现QSslSocket::connectToHostEncrypted: TLS initialization failed问题解决

发布于:2021-11-27 07:57:01

? ?在windows?qt5使用?https协议获取数据时出现qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed这个错误,网上查询很多博客都是建议将qt5 安装目录下的libeay32.dll?和ssleay32.dll?复制到程序运行目录中即可解决问题,但是我将这两个文件复制到程序运行目录时还是会出现这个问题,没办法,只有自己动手编译openssl?源码了,现在我来说一下过程吧:


? ? ? ? ? ? ? 首先,先安装msys2,由于国外下载的地址访问不了(可能由于现在疫情关系长城拦截又加强了有关吧),幸好在清华大学镜像站找到了,地址是https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/msys2-x86_64-latest.exe? ,由于楼主的系统为64位所以选择这个版本,所以各位读者在阅读这篇文章的时候下载相关文件时要注意自身*台是32位系统还是64位系统,安装默认即可,打开msys2终端,执行make ,发现找不到这条命令,则安装一下pacman -S?make ,还有添加系统环境变MSYS2_PATH_TYPE=inherit引用系统的环境,如下图所示:


?



?第二步:?下载openssl ,地址为https://www.openssl.org/news/vulnerabilities.html,下载完毕后,复制源码包至msys2安装目录下,解压该源码,在msys2终端下cd?该源码文件目录下,执行perl Configure mingw64 shared --prefix=/usr/local/win64,但提升无perl这命令,则用pacman -S?perl?安装一下,安装完后,再执行


? ? ? ? ? ? ? ? ? ? ? ? 1、perl Configure mingw64 shared --prefix=/usr/local/win64


? ? ? ? ? ? ? ? ? ? ? ? 2、make -j4


? ? ? ? ? ? ? ? ? ? ? ? 3、make install


? ? ? ? ? 安装完成后,在msys2安装目录下/usr/local/win64/bin/?复制?libcrypto-1_1-x64.dll?和?libssl-1_1-x64.dll?这两个文件至qt5程序运行目录下即可,这时我们运行程序不报错了,我们可以使用https协议了,上面需要的安装包我打包一份上传至cdsn资源,需要朋友自己到我的资源中心下载,名字为qt_https openssl msys2 windows 64位环境配置源码.rar

相关推荐

最新更新

猜你喜欢