1 查看自己QT支持的OPenSSL版本号

#include <QDebug>
#include <QtNetwork/QSslSocket>
#include <QDebug>
#include <QNetworkAccessManager>
void checkSslSupport() {
    qDebug() << "SSL support:" << QSslSocket::supportsSsl()
             << "\nSSL library build version:" << QSslSocket::sslLibraryBuildVersionString()
             << "\nSSL library runtime version:" << QSslSocket::sslLibraryVersionString();

    QNetworkAccessManager *manager = new QNetworkAccessManager();
    qDebug() << manager->supportedSchemes();
}

1.1 查看版本号

  1. 新建项目testOpenSSL
  2. pro文件中加入QT += network
  3. 在头文件中加入#include <QDebug> #include <QSslSocket>
  4. qDebug()<<QSslSocket::sslLibraryBuildVersionString();
    在这里插入图片描述

1.2 是否配置了OPenSSL

//看看是否配置了ssl
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
qDebug() << manager->supportedSchemes();

在这里插入图片描述

2 安装OPenSSL

安装OPenSSL有两种方式:

  1. 下载已经编译好的库,放到指定位置
  2. 自己编译源码

2.1 下载已经编译好的库

https://slproweb.com/products/Win32OpenSSL.html

  1. 找到自己QT支持的版本,我的版本是“OpenSSL 1.1.1g 21 Apr 2020”
    在这里插入图片描述
    安装完成之后,运行刚才的程序:
    在这里插入图片描述
    已经支持SSL了,方便快捷。

需要将对应的库放到可执行的文件,同级文件下,否则会出错:
在这里插入图片描述

2.2 自己编译代码

https://www.openssl.org/
https://blog.csdn.net/u013052326/article/details/111713932

2.2.1 下载perl

perl:https://www.perl.org/get.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检查环境变量,如果软件没有自己加入,请手动加入
在这里插入图片描述
验证,出现以下内容则表示成功
在这里插入图片描述

2.2.1 下载OPenSSL源码

以OpenSSL 1.0.2 22 Jan 2015为例
在这里插入图片描述

以管理员身份运行:
在这里插入图片描述
cd /d D:\vs\openssl-1.0.2.tar\openssl-1.0.2进入源文件

  1. 配置
    32位
perl Configure VC-WIN32 no-asm --prefix="D:\\vs\\openssl-1.0.2.tar\\build32"

64位

perl Configure VC-WIN64A no-asm --prefix="D:\\vs\\openssl-1.0.2.tar\\build64"
release版本:VC-WIN64A代表是64位release 库;VC-WIN32 代表是32位release库
debug版本:debug VC-WIN64A ; debug VC-WIN32A
no-asm:编译过程中不使用汇编代码加快编译过程。
–prefix=路径指定生成路径

编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean


–cross-compile-prefix 交叉编译参数
–prefix=DIR 安装目录设置,make install指令会安装到指定目录。
–debug 使用调试符号和零优化级别构建OpenSSL
–release 在不调试符号的情况下构建OpenSSL。这是默认设置
–libdir=DIR 安装目录树顶部(请参阅–prefix选项)下将安装库的目录的名称。

默认情况下,这是“lib”。

请注意,仅在Windows上,.lib文件将存储在此位置。 dll文件将始终安装到“bin”目录。

–openssldir=DIR OpenSSL配置文件的目录,以及默认证书和密钥存储。

默认设置为:

Unix:/usr/local/ssl

Windows:C:\Program Files\Common Files\SSL或C:\Program Files(x86)\Common
Files\SSLOpen
VMS:SYS$COMMON:[OPENSSL-COMMON]

no-tests 不要构建测试程序或运行任何测试 no-shared 不要创建共享库,只创建静态库。
  1. 生成makefile
    生成makefile,64位:ms\do_win64a ;32为:ms\do_ms
    在这里插入图片描述
  2. nmake -f ms\ntdll.mak(ntdll 代表动态库,nt 代表静态库)
  3. 安装nmake -f ms\ntdll.mak install
  4. 测试nmake -f ms\ntdll.mak test
    在这里插入图片描述将生成的库,放入对应的qt文件位置 E:\qt_5.5\5.5\mingw492_32\bin (我是32位的)在这里插入图片描述
GitHub 加速计划 / ope / openssl
25.12 K
9.99 K
下载
传输层安全性/安全套接层及其加密库
最近提交(Master分支:1 个月前 )
fd39d1c8 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/25095) 2 个月前
ae87c488 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/25095) 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐