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库添加到发布程序中。

相关推荐
车载测试工程师40 分钟前
车载以太网网络测试-29【SOME/IP-SD】-SD状态机
网络·网络协议·tcp/ip·车载系统·php
高兴达1 小时前
RPC--自定义注解注册发布服务
网络·网络协议·rpc
lang201509282 小时前
Reactor ConnectableFlux支持多订阅者
java·网络
在下Z.2 小时前
利用TCP协议,创建一个多人聊天室
网络·网络协议·tcp/ip
pipip.3 小时前
UDP————套接字socket
linux·网络·c++·网络协议·udp
Félix2513 小时前
计算机网络笔记(不全)
网络·计算机网络
朱包林6 小时前
day45-nginx复杂跳转与https
linux·运维·服务器·网络·云计算
Absinthe_苦艾酒12 小时前
计算机网络(三)传输层TCP
网络·tcp/ip·计算机网络
GLAB-Mary13 小时前
AI会取代网络工程师吗?理解AI在网络安全中的角色
网络·人工智能·web安全
敲敲敲-敲代码13 小时前
【ArcGIS10.2】网络数据集构建---最短路径分析
网络·arcgis