【发布时间】:2017-11-29 15:36:09
【问题描述】:
我有一个使用 Windows 中的 MinGw 在 Qt 5.9 中构建的桌面应用程序,它从数据库中提取数据并以有组织的方式将其显示在 GUI 中。
在发布配置中部署项目在我测试的 4 台不同的计算机上运行良好(Windows 10 和 Windows 7)
但是,在我的客户端计算机中,每当尝试连接时都会出现 SSL 握手错误。
发生的错误是:
qml: Error during SSL handshake: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
我在这里找到并尝试过的当前解决方案:
在我的发布文件夹中部署 openssl 最新的 dll(与 qt 的 dll 一起)
-
实现ignoreSslErros(),如下代码:
QObject::connect(_socket, SIGNAL(sslErrors(QList<QSslError>)), _socket,SLOT(ignoreSslErrors()));
使用的信号和槽在 QWebSocket 的文档中定义。
插槽:http://doc.qt.io/qt-5/qwebsocket.html#ignoreSslErrors
信号:http://doc.qt.io/qt-5/qwebsocket.html#sslErrors
这个实现不起作用。
我已经到了远程访问我客户的计算机并在调试配置中运行 Qt 的地步,我得到的唯一一件事是这些在我的计算机上构建时不会出现的构建警告:
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
【问题讨论】: