提问者:小点点

Websockets 在 Chrome 中不起作用 (wss):“握手已取消”


我目前正在Docker Cloud上开发Web套接字应用程序。当重新部署我的应用程序时,现在我总是收到此错误消息:

WebSocket连接失败:WebSocket打开握手被取消

当查看数据帧时,我看到一个包含以下数据的帧:

(操作码1)

在研究该问题时,似乎与SSL/证书等有关。一些解决方案包括添加自签名证书。令人困惑的是,相同的证书似乎适用于https,但不适用于ws:

在用其他浏览器测试时,我发现Safari运行良好。因此,我确信服务器确实在正确的端口上使用正确的证书运行。似乎只有chrome有问题。

我知道一些关于堆栈溢出的解决方案建议手动添加证书,但由于它在Safari上有效,而且不是自签名证书,所以我认为它应该正常工作。


共1个答案

匿名用户

对照SSLabs检查站点表明,服务器没有提供证书链的所有必需部分,但缺少链证书:

此服务器的证书链不完整。等级上限为b级。< br >...< br >连锁问题未完成< br >...< br> 2额外下载-让我们加密权威X3

一旦通过正确配置服务器解决了这个问题,它应该可以在所有浏览器中工作。目前,它可能仅适用于某些浏览器,即,如果浏览器缓存了访问其他网站时丢失的链证书(如Firefox),或者如果它通过下载丢失链证书(Chrome)来解决配置错误的服务器。