使用Secure Websocket和PHP - 加密握手

时间:2012-07-12 11:02:26

标签: php security websocket handshake

我读到(安全)Websocket正在使用与HTTP(S)协议相同的端口。 但是,我的PHP Websocket服务器接收来自客户端的加密握手,我正在收听12345端口上的打开连接。

我的系统通过非安全的websocket运行良好,但我需要添加安全功能,我不明白为什么我收到这些加密的握手。由于OSI模型,这对我来说是透明的......

如果我配置apache来激活SSL引擎并监听12345端口。我不能再为我的PHP Websocket服务器使用这个端口,因为它将处于“已经使用过”的状态......或者我已经忘记了某些东西......

我输了:(

编辑:

这是我的安全websocket标头(使用wss://):

Request URL:wss://localhost:12345/

这里是我的简单websocket标题(使用ws://):

Request URL:ws://localhost:12345/ Request Method:GET Status Code:101 Switching Protocols Request Headersview source Connection:Upgrade Host:localhost:12345 Origin:http://localhost Sec-WebSocket-Extensions:x-webkit-deflate-frame Sec-WebSocket-Key:wovBDvKiKdy/+0Y2BQPr9w== Sec-WebSocket-Version:13 Upgrade:websocket (Key3):00:00:00:00:00:00:00:00 Response Headersview source Connection:Upgrade Sec-WebSocket-Accept:1ao7ngQG4LAa3JxFibyvoocbSAM= Upgrade:websocket (Challenge Response):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

为什么没有安全连接我会得到更多?

1 个答案:

答案 0 :(得分:2)

  

我读过(安全)Websocket正在使用与HTTP(S)协议相同的端口

默认情况下,是 - 但您可以通过URL覆盖两者中的端口,请考虑:

http://www.example.com:443/
https://www.example.com:8080/
http://www.example.com:12345/

如果其他东西已经在某个特定端口/地址上侦听,那么你就无法在那里运行第二台服务器 - 所以如果你的网络服务器已经在端口443(https)上监听,你将无法运行一个单独的websocket服务器在同一个端口上。

只需将您的HTTPS服务器留在443,然后在12345运行ssl ws服务器。


刚刚看到你的上一条评论。

SSL不只是关于您监听的端口 - 流量是加密的。如果你想处理wss流量,那么你需要一个支持SSL的服务器。有多种实现方法,取决于您实现当前服务器的方式。