Qt 提示 error creating ssl context()的一种解决方式

问题

项目中使用https进行用户登录,软件在客户电脑上会出现 error creating ssl context()的问题。

排查

考虑到在测试环境使用正常,客户机部分电脑无法使用,部分电脑正常等原因,可能是windows系统缺少openssl的原因,后在项目中增加了判断,内容如下:

if (!QSslSocket::supportsSsl()) {
	QMessageBox::information(NULL, "warning", "notSupportsSsl", QMessageBox::Yes);
}

经在客户环境下测试确认了是这个原因。

解决方案

下载了OpenSSL并安装到系统中:
Win32/Win64 OpenSSL Screenshot下载地址
在安装时需要注意要复制到windows system directory,其他安装选择默认即可。安装后将bin目录中的libssl-1_1-x64.dll和libcrypto-1_1-x64.dll放到exe同级目录即可.(部分版本为libeay32.dll和ssleay32.dll)

注意

使用

QSslSocket::sslLibraryBuildVersionString()

查看使用的ssl版本,我的是在这里插入图片描述

在官网中下载对应的版本
在这里插入图片描述

posted @ 2022-06-07 07:59  清楚xc  阅读(488)  评论(0)    收藏  举报