使用Secure Websocket和PHP – 加密握手

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

但是,我的
PHP Websocket服务器从客户端接收加密的握手,我正在收听12345端口上的开放连接.

我的系统通过非安全websocket很好地工作,但我需要添加安全功能,我不明白为什么我会收到这些加密的握手.由于OSI模型,它对我来说是透明的……

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

我迷路了 :(

编辑:

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

请求网址:wss:// localhost:12345 /

在这里我的简单websocket标头(使用ws://):

请求网址:ws:// localhost:12345 /
请求方法:GET
状态代码:101切换协议
请求Headersview源
连接方式:升级
主持人:本地主机:12345
产地:HTTP://本地主机
仲的WebSocket的扩展:X-WebKit的放气框架
Sec-WebSocket-Key:wovBDvKiKdy / 0Y2BQPr9w ==
仲的WebSocket-版本:13
升级:网页套接字
(密钥3):00:00:00:00:00:00:00:00
响应标题来源
连接方式:升级
仲的WebSocket-接受:1ao7ngQG4LAa3JxFibyvoocbSAM =
升级:网页套接字
(挑战回复):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

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

最佳答案

I read that (secure) Websocket are using the same ports that the HTTP(S) protocol

默认情况下,是 – 但您可以通过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的服务器.有多种实现方法,这取决于您实现当前服务器的方式.

点赞