在 QWebSockets 中检查客户端 SSL 证书有效性的最佳实践

Posted

技术标签:

【中文标题】在 QWebSockets 中检查客户端 SSL 证书有效性的最佳实践【英文标题】:Best practices to check SSL Certificate validity on client side in QWebSockets 【发布时间】:2014-06-05 12:41:24 【问题描述】:

我正在尝试编写一个使用全新 QWebSockets 的应用程序。

到目前为止,我想实现安全 Web 套接字,但示例指向我拒绝 SSL 错误,即使他们评论说它不安全。

我的问题是:我应该如何在客户端处理 SSL 证书的控制,甚至是自签名证书?在这种情况下,最佳做法是什么?

仅供参考,这里有 a link 到 QWebSocket 类发出的 QSSLErrors。

不幸的是,当我打印它们时,webSocket.sslConfiguration().peerCertificate() 返回空值。

【问题讨论】:

【参考方案1】:

非常广泛,但您不应信任所有证书,或绕过 HTTPS 中的主机名检查。您不需要验证证书本身,因为图书馆应该这样做。您还应该检查证书的 subjectDN 是否是您希望看到的,除非您使用 HTTPS 为您执行此操作(主机名检查)。

【讨论】:

感谢您的回答。基本上,WebSockets 被解释为 HTTP 请求(在我的例子中,作为 HTTPS)。主机名检查可以轻松完成,但 QWebSockets 不允许我验证证书本身的内容。

以上是关于在 QWebSockets 中检查客户端 SSL 证书有效性的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

IIS 是不是进行 SSL 证书检查,还是我必须对其进行验证?

Java SSL 证书吊销检查

禁用SSL证书检查双绞线代理

如何让cxf客户端简单支持ssl

TLS(SSL)

无法使用任何 QWebSocket 客户端基本示例