首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使QSslSocket使用OpenSSL安装支持SSL?

如何使QSslSocket使用OpenSSL安装支持SSL?
EN

Stack Overflow用户
提问于 2019-05-05 14:12:21
回答 1查看 2.4K关注 0票数 2

我试图运行一个简单的客户机/服务器来使用QSslSocket实现通信。我在Windows上工作(很不幸),为了更方便,我使用了QtCreator。

当我尝试从客户端使用MyQSslSocket->connectToHostEncrypted(ip, port)连接到服务器时,我会得到以下消息:

qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS初始化失败

当我打印引发的错误时,会得到以下错误:

QAbstractSocket::SocketError(20)

在文档中,我们可以发现这个错误代码对应于QAbstractSocket::SslInternalError,其描述如下:

“所使用的SSL库报告了一个内部错误。这可能是由于库安装错误或配置错误造成的。”

经过一些调查后,我发现Qt本身并不提供OpenSSL,所以我从这里安装了它(可以确定32位和64位版本的二进制文件)。

在安装过程中,dll被复制到C:\Windows\System32 32( 64位)。然后,我检查了PATH环境变量是否包含了这个文件夹。

在这一点上,我再次尝试,但我仍然有同样的问题,似乎OpenSSL安装仍然没有找到。

当我打印以下调用的输出时(在我的客户端的主要功能中):

代码语言:javascript
复制
qDebug() << QSslSocket::supportsSsl();
qDebug() << QSslSocket::sslLibraryVersionString();

我得到以下产出:

错误 "“

我的问题是,如何使QSslSocket::supportsSsl()返回真实?

如果有人能教我错过了什么,我做错了什么,告诉我应该做什么才能使这个SSL连接正常运行,我将非常感激。

离别了。

很抱歉,这个问题很长,但我认为清楚地暴露问题和上下文是很重要的,这样可以帮助你轻松地理解问题,并给出更多相关的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-07 17:28:56

好吧,多亏了@AlienPenguin和@Macias的建议,我的OpenSSL版本太新了。

最后,我已经安装了用于Qt构建的最接近的可用版本(我应该考虑到这一点),可以通过运行以下调用找到该版本:

代码语言:javascript
复制
qDebug() << QSslSocket::sslLibraryBuildVersionString();

问题解决了。

再次感谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55992841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档