C++ 只有在客户端部署时,Qt5.9才会出现SSL握手问题
我有一个在Qt5.9中使用Windows中的MinGw构建的桌面应用程序,它从数据库中提取数据,并以有组织的方式在GUI中显示数据 在我测试过的4台不同的计算机(windows 10和windows 7)上,发布配置中的项目部署工作正常 但是,在我客户的计算机中,每当尝试连接时都会出现SSL握手错误 发生的错误是:C++ 只有在客户端部署时,Qt5.9才会出现SSL握手问题,c++,windows,qt,ssl,C++,Windows,Qt,Ssl,我有一个在Qt5.9中使用Windows中的MinGw构建的桌面应用程序,它从数据库中提取数据,并以有组织的方式在GUI中显示数据 在我测试过的4台不同的计算机(windows 10和windows 7)上,发布配置中的项目部署工作正常 但是,在我客户的计算机中,每当尝试连接时都会出现SSL握手错误 发生的错误是: qml: Error during SSL handshake: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 a
qml: Error during SSL handshake: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
我在这里找到并尝试的当前解决方案:
- 在我的发布文件夹中部署openssl最新DLL(与qt的DLL一起)
- 实现ignoressleros(),如下面的代码所示:
QObject::connect(_socket, SIGNAL(sslErrors(QList<QSslError>)), _socket,SLOT(ignoreSslErrors()));
鉴于这些警告,我建议客户端计算机上的OpenSSL库不支持TLS 1.1+,但服务器需要它。虽然您可能试图提供新的SSL库,但这些消息表明您的程序没有使用这些新库。这帮助我解决了问题,我将服务器TLS要求降级为1.0。我们使用Caddy(),我必须更改Caddy文件。谢谢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