如何将ws更改为wss?
wss是通过普通HTTP进行升级还是仅在HTTPS上工作?
webSocket = new WebSocket("ws://localhost:port/Esv/ocp");
当我将ws更改为wss时,它可以正常工作。
webSocket = new WebSocket("wss://localhost:port/Esv/ocp");
出现了以下错误:
连接建立时出错:net::ERR_SSL_PROTOCOL_ERROR
如何将ws更改为wss?
wss是通过普通HTTP进行升级还是仅在HTTPS上工作?
webSocket = new WebSocket("ws://localhost:port/Esv/ocp");
当我将ws更改为wss时,它可以正常工作。
webSocket = new WebSocket("wss://localhost:port/Esv/ocp");
出现了以下错误:
连接建立时出错:net::ERR_SSL_PROTOCOL_ERROR
使用 SSL 还是不使用 SSL
wss
只连接在 https
上ws
只连接在 http
上反过来也一样:
https
只接受 wss
http
只接受 ws
错误
以下情况将导致错误(在 Firefox 下进行测试):
wss
连接到一个 http
端点. 在我的测试中,我得到了一个
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable
ws
连接到一个 https
端点,你会得到这个错误
SecurityError: The operation is insecure.
Websocket 的圣经是 RFC 6455。在第 4.1.5 节:
如果/ secure /为真,则客户端必须在打开连接之后,发送握手数据之前进行TLS握手[RFC2818]。如果失败(例如,无法验证服务器的证书),则客户端必须“失败WebSocket连接”并中止连接。否则,在此通道上的所有进一步通信都必须通过加密隧道运行[RFC5246]。 secure标志由URI定义。第3节定义了什么是secure。
如果您想使用wss
: - 必须启用SSL - 您的终端点必须受到保护(https:// ...
):不允许“安全降级” 如果您想使用ws
: - 确保您的终端点未启用SSL(http:// ...
)