1

假设一个 100% 安全的 websocket 站点,webserver 提供所有文件:html、js、css 等,websocket 提供客户端和服务器之间的所有数据。

显然最初的 ssl 握手是在默认 https 端口上的客户端和 webserver 之间进行的,但是 wss 将在不同的端口上,所以它必须再次握手吗?

我问的原因是因为 websockets 和 spdy 还没有一起工作(所以我已经读过),所以我希望通过在 web 服务器上安装 spdy 并依赖 wss 的 keep-alive 来解决它,因为有些握手后声称spdy并不比keep-alive快多少(如果有的话)spdy比keep-alive https快吗?.

4

2 回答 2

1

不。SSL 协议决定客户端和服务器如何协商要使用的密码套件、相互验证、传输证书、建立会话密钥和传输消息。握手成功完成后,所有流经新 SSL 的数据会话受到握手期间同意的加密算法和会话密钥的保护。

于 2013-03-07T22:48:43.510 回答
1

虽然特拉维斯所说的大部分内容都是事实,但我不清楚他为什么对你的问题回答“不”。

当客户端打开与 Web 服务器的 HTTPS 连接时,Web 服务器可能会提供 JS,该 JS 使用 wss:// 启动 WebSocket 连接到不同的源(可能是同一主机,但正如您所描述的,它是不同的端口)。这是一种不同的联系。必须为每个连接单独执行 SSL 握手。

Travis 所说的对于 SSL 会话是正确的,如果 WebSocket 使用与 https:// 文档获取相同的连接,那么回答“否”是正确的。但由于 wss:// WebSocket 连接初始化将使用不同的连接,它需要另一个 SSL 握手。

于 2013-03-07T23:07:21.817 回答