qt集成openssl

第一:下载项目中对应版本的openssl的库

https://openssl-library.org/source/old/1.0.2/ 老版本的openssl的下载地址,这个下载的好像是源码,还要编译。

https://indy.fulgan.com/SSL/

在这里下载不需要编译,下载下来直接用dll文件。

第二:下载完库,配置库

Qt本身不包含OpenSSL库,因此在使用需要SSL/TLS的功能时(如HTTPS请求),必须手动配置OpenSSL。

OpenSSL是第三方库:Windows系统本身不包含OpenSSL,它是一个独立的安全套接层协议实现。

Qt的SSL支持依赖OpenSSL:Qt的网络模块(QNetworkAccessManager)使用OpenSSL实现HTTPS等安全协议。

链接库路径和名称

#LIBS += -L"C:/Users/Lenovo/Documents/build-HttpManager-Desktop_Qt_5_9_6_MinGW_32bit-Debug/debug" -lcrypto-1_1 -lssl-1_1

LIBS += -L"C:/Users/Lenovo/Documents/build-HttpManager-Desktop_Qt_5_9_6_MinGW_32bit-Release/release" -lcrypto-3 -lssl-3 -leay32 -lssleay32

上述别看链接了那么多库,其实也就-leay32 -lssleay32有用,这两个是我的qt工程中对应版本的openssl库。 -lcrypto-3 -lssl-3在我的工程中版本不对应。

下面注掉了,开始想不下载openssl运行qt的https的示例程序,发现运行后 不能和服务端建立通讯。

#DEFINES += QT_USE_QSCHANNEL

第三:运行程序中验证,如果配置正确会输出是否支持SSL: true。看打印输出我下载 配置的版本是1.0.2r。

复制代码
// 添加 SSL 支持检查
qDebug() << "Qt编译时SSL版本:" << QSslSocket::sslLibraryBuildVersionString();
qDebug() << "当前运行时SSL版本:" << QSslSocket::sslLibraryVersionString();
qDebug() << "是否支持SSL:" << QSslSocket::supportsSsl();

//Qt编译时SSL版本: "OpenSSL 1.0.2j 26 Sep 2016"

//当前运行时SSL版本: "OpenSSL 1.0.2r 26 Feb 2019"

//是否支持SSL: true

相关推荐
AtoposのCX3307 分钟前
Docker运行hello-world镜像失败或超时
运维·docker
杨了个杨898222 分钟前
memcached部署
qt·websocket·memcached
熊延1 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
无小道2 小时前
Qt-qrc机制简单介绍
开发语言·qt
CodeKwang3 小时前
Qt实战:简易Excel表格 | 附完整源码
qt·excel·qtabwidget·qt控件
Yeats_Liao4 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒4 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
文艺理科生Owen5 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode5 小时前
Redis的主从复制与集群
运维·服务器·redis
C++ 老炮儿的技术栈6 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法