使用本地主机证书保护 websocket

Secure websocket with localhost certificate

我们的站点使用安全连接 (HTTPS),我们需要客户端与用户先前安装的后台程序 运行 通信(使用 Qt 制作)。我们打算使用 websockets,使用公司签名的证书来做到这一点。 CA 安装在 Windows 和 Mozilla 数据库中。

由于websocket在客户端运行,而websocket服务器也在客户端机器上运行,所以连接是在localhost上进行的。另外,因为我们使用 HTTPS,所以我们也必须使用 WSS。我们选择了2424端口。

问题是,Chrome,Firefox 和 IE 认为该连接不受信任,因为它位于本地主机上(我认为)。如果我在 https://127.0.0.1:2424 上打开一个新标签页,则会出现一条错误消息;浏览器表示该证书仅在本地主机上有效,这可能意味着有人可能试图拦截发送到服务器的数据(Firefox 错误代码:ssl_error_bad_cert_domain)。

问题是证书颁发给 localhost,而不是 127.0.0.1。使用 IP 连接的 websocket,未被证书覆盖,因此将套接字地址从 wss://127.0.0.1:2424 更改为 wss://localhost:2424 有效,至少对于 Chrome 和 IE,但连接仍然被拒绝火狐.