我们为我们的网站使用安全连接(HTTPS),我们需要客户端与之前运行的后台运行的程序(由Qt制作)进行通信。我们打算使用websockets,使用公司签署的证书。 CA安装在Windows和Mozilla数据库中。
由于websocket在客户端运行,而websocket服务器也在客户端的机器上运行,因此连接在localhost上实现。另外,因为我们使用HTTPS,所以我们还必须使用WSS。我们选择了2424端口。
问题是,Chrome,Firefox和IE认为连接不受信任,因为它位于localhost(我认为)。如果我在https://127.0.0.1:2424
上打开新标签页,则会显示错误消息;浏览器说证书只对localhost有效,这可能意味着有人可能试图拦截发送到服务器的数据(Firefox错误代码:ssl_error_bad_cert_domain
)。
答案 0 :(得分:2)
问题是证书是发给localhost
的,而不是127.0.0.1
。使用IP连接的websocket,未被证书覆盖,因此将套接字地址从wss://127.0.0.1:2424
更改为wss://localhost:2424
,至少对于Chrome和IE而言,但在Firefox中仍然拒绝连接。