使用带有PHP加密握手的安全Websocket



我读到(安全)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

为什么我在没有安全连接的情况下获得更多?

我读到(安全)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的服务器。实现这一点的方法多种多样——这取决于您如何实现当前服务器。

相关内容

  • 没有找到相关文章

最新更新