将ws更改为wss的步骤是什么?
wss是否通过普通HTTP进行升级或wss仅适用于HTTPS?
webSocket = new WebSocket("ws://localhost:port/Esv/ocp");
工作正常,当我把ws改为wss
时webSocket = new WebSocket("wss://localhost:port/Esv/ocp");
它显示此错误:
连接建立错误:net :: ERR_SSL_PROTOCOL_ERROR
答案 0 :(得分:33)
SSL或非SSL
您可能拥有SSL certificate issue。连接点规则可以是summarized as:
wss
连接 https only
ws
连接 http
和反之亦然:
https
接受 wss only
http
接受 ws only
<强>错误强>
以下情况会导致错误(在Firefox下完成测试):
wss
连接连接到http
端点。在我的测试中,我有一个
InvalidStateError:尝试使用不可用或不再可用的对象
ws
连接连接到https
端点,则会出现错误
SecurityError:操作不安全。
websocket的圣经 RFC 6455 。在4.1.5部分中:
如果 / secure / 为true,则客户端必须在打开连接之后和发送握手数据之前对连接执行TLS握手[RFC2818]。如果失败(例如,无法验证服务器的证书),则客户端必须使WebSocket连接失败并中止连接。否则,此通道上的所有进一步通信必须通过加密隧道[RFC5246]。
安全标志由URI定义。第3节定义什么是安全
如果方案组件与“wss”不区分大小写,则称为“安全”(并且称“安全标志已设置”)。
如果您想使用wss
:
https://...
):不允许“安全降级”如果您想使用ws
:
http://...
)