首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只有在客户端部署时QT5.9才会出现SSL握手问题

只有在客户端部署时QT5.9才会出现SSL握手问题
EN

Stack Overflow用户
提问于 2017-06-26 17:57:47
回答 1查看 1.1K关注 0票数 0

我在WindowsQT5.9中使用MinGw构建了一个桌面应用程序,它从数据库中提取数据并以有组织的方式在GUI中显示。

在发行版配置中部署该项目在我测试过的 (windows 10和windows 7)的4台不同计算机上运行良好。

但是,在我的客户端计算机中,每当尝试连接时都会出现SSL握手错误。

发生的错误是:

代码语言:javascript
运行
复制
qml: Error during SSL handshake: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

我在这里找到并尝试过的当前解决方案:

  • 在我的发布文件夹中部署openssl最新的dll(与qt的dll一起)
  • 实现ignoreSslErros(),如下代码所示: QObject::连接( _socket,信号(sslErrors(QList)),_socket,时隙(ignoreSslErrors();

在QWebSocket的文档中定义了所使用的信号和插槽。

插槽:http://doc.qt.io/qt-5/qwebsocket.html#ignoreSslErrors

信号:http://doc.qt.io/qt-5/qwebsocket.html#sslErrors

这个实现不起作用。

我已经到了远程访问客户端计算机并在调试配置中运行Qt的地步,我唯一得到的是在我的计算机上构建时不会发生的这些构建警告:

代码语言:javascript
运行
复制
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
qt.network.ssl: QSslSocket: cannot resolve SSL_set_alpn_protos
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_alpn_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_alpn_selected
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-26 18:07:42

考虑到这些警告,我建议客户端计算机上的OpenSSL库不支持1.1+,而是服务器需要它。虽然您可能尝试提供新的SSL库,但这些消息表明您的程序没有使用这些新库。

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

https://stackoverflow.com/questions/44765757

复制
相关文章

相似问题

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