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

   在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值