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

相关推荐
JoySSLLian1 小时前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
Zach_yuan1 小时前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
猫头虎1 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
charlotte102410242 小时前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
Zaralike2 小时前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
云姜.3 小时前
网络协议----OSI七层网络协议 和 TCP/IP四层(五层)网络协议
网络·网络协议
!chen3 小时前
LabVIEW TCP Server端工具TCP通信
网络·tcp/ip·labview
枷锁—sha3 小时前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
郝学胜-神的一滴3 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
池央3 小时前
CANN 算子诊断与故障定位:oam-tools 在异构计算错误解析中的作用
网络