Qt之OpenSSL

SSL(Secure Socket Layer)安全套接层是广泛使用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。

当QT使用get/post发送请求时,如果使用了https开头的网页,就需要用到SSL。如果缺少SSL库,则会导致请求发送中断,并提示以下错误:

复制代码
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed.

这是由于QT只提供了SSL的静态链接库,而没有提供SSL的动态链接库,解决这个问题首先要知道当前QT支持的SSL库,然后添加相应的SSL库即可。

查看下是否支持SSL:

复制代码
qDebug() << "OpenSSL支持情况:" << QSslSocket::supportsSsl();    

返回的是false,表示当前没有安装ssl库。

解决办法如下:

首先查看当前QT支持的SSL版本及:

复制代码
qDebug()<<"QSslSocket支持的版本="<<QSslSocket::sslLibraryBuildVersionString();

点击下面的链接,并下载相应的版本(一般下载Win32 OpenSSL v1.1.1):

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)

如果发布程序,需要将相应的ssl库添加到发布程序中。

相关推荐
一叶知秋yyds27 分钟前
openwrt 系统下通过命令行设置允许wan口进行Luci页面的访问
网络·openwrt·luci 开启wan 口访问
网络安全-海哥1 小时前
Web安全深度实战:从漏洞挖掘到安全防护
网络·web安全·网络安全·网络攻击·转行
我叫汪枫2 小时前
《HTTP 实战:常用调试工具与抓包技巧》
网络·网络协议·http
googleccsdn2 小时前
ENSP Pro Lab笔记:配置STP/RSTP/MSTP(4)
网络·笔记·网络协议
eeeasen3 小时前
FnOS(0.9.32版本) --usb无线网卡(RTL8xxxu)调试
网络
专家大圣4 小时前
5分钟启动标准化安卓环境:Docker-Android让模拟器配置不再踩坑
android·网络·docker·容器·内网穿透
国科安芯4 小时前
基于ASM1042通信接口芯片的两轮车充电机性能优化研究
服务器·网络·人工智能·单片机·嵌入式硬件·性能优化
普普通通的南瓜5 小时前
金融交易防护:国密 SSL 证书在网银与移动支付中的核心作用
网络·网络协议·安全·arcgis·gitlab·ssl·源代码管理
广然5 小时前
跨厂商(华为 & H3C)防火墙 IPSec 隧道部署
服务器·网络·华为