配置QSslConfiguration让客户端程序跳过本地SSL验证

大家下午好哦。今天我们在重新制作我们萌梦聊天室的时候,出现了这样的问题。那就是我们的客户端能够对qtdream.com服务器进行登录,但是不能对localhost服务器(也就是本机啦)进行登录。这究竟是什么原因呢?
原图来自http://www.pixiv.net/member_illust.php?mode=medium&illust_id=60269167
因为这个问题是在我们引入了https的时候出现的,所以我们把原因定位到为什么会导致https出现问题。后面我看到了QNetworkRequest这个类,看到了里面有这样一个函数::strawberry:

QNetworkRequest::setSslConfiguration(const QSslConfiguration &configuration);

这个函数呢,可以设置SSL的配置,包括OpenSSL以及其它的SSL,都是这样的配置。然后我又看QSslConfiguration这个类:,并且看到了这样的函数:

QSslSocket::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode);

我在仔细研读文档后,发现其中的端倪。原来默认设置是对服务器的安全证书进行验证的。我们本地的网站由于证书有问题,从而无法导入证书,这个时候呢,无法通过验证。这个时候,默认的验证模式无法通过,从而服务端无法获得到客户端传入的数据,因此我们需要进行这样的操作:

    // 设置SSL配置
    QSslConfiguration sslConf;
    sslConf.setPeerVerifyMode( QSslSocket::VerifyNone );
    r.setSslConfiguration( sslConf );

这样操作的话,我们就可以不再检测SSL了。这样我们就可以顺利地通过我们的客户端连接到我们的服务器了。怎样?很简单吧。

https://qtdream.com/topic/818/%E9%85%8D%E7%BD%AEqsslconfiguration%E8%AE%A9%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%A8%8B%E5%BA%8F%E8%B7%B3%E8%BF%87%E6%9C%AC%E5%9C%B0ssl%E9%AA%8C%E8%AF%81

posted @   findumars  Views(2762)  Comments(0Edit  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2016-01-12 Mac App Store应用签名和pkg签名(必须签名后才能销售)
2016-01-12 QT5.6 编译SQLServer驱动
2016-01-12 Qt5程序开机自启动(windows)
2016-01-12 由基于qml,c++的串口调试工具浅谈qml与c++混合编程
2016-01-12 qt5_qml_Opengl_shader 第一弹----------------------openglunderqml的简化及介绍
2015-01-12 读书方法,以及先后顺序(先实践,后理论)
点击右上角即可分享
微信分享提示