QT SSL handshake failed问题分析与解决 QT基础入门【网络编程】openssl

问题:

使用https方式进行post 和get请求时,有时候会出现SSL handshake failed的问题,其实是调用Qt QNetworkAccessManager出现的问题。

其实SSL握手是建立HTTPS连接过程的第一步。为了验证和建立连接,用户的浏览器和网站的服务器必须经过一系列检查(握手),从而建立HTTPS连接参数。

分析: 

QNetworkRequest::setSslConfiguration(const QSslConfiguration &configuration);

这个函数呢,可以设置SSL的配置,包括OpenSSL以及其它的SSL,函数默认设置是对服务器的安全证书进行验证的。

由于的网站证书有问题,既网页访问出现下列提示

 从而无法导入证书,这个时候呢,无法通过验证。这个时候,默认的验证模式无法通过,从而服务端无法获得到客户端传入的数据。

解决:

在执行post与get方法之前进行以下配置

方案1

QSslConfiguration config = QSslConfiguration::defaultConfiguration();
config.setProtocol(QSsl::TlsV1);
config.setPeerVerifyMod

猜你喜欢

转载自blog.csdn.net/qq_43445867/article/details/132385522