gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:33:16 26 4
gpt4 key购买 nike

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

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

如果我配置 apache 以激活 SSL 引擎并监听 12345 端口。我将无法为我的 PHP Websocket 服务器再次使用此端口,因为它将处于“已使用”状态......或者我忘记了什么......

我迷路了:(

编辑:

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

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

这是我简单的 websocket header (使用 ws://):

请求网址:ws://localhost:12345/
请求方式:GET
状态代码:101 切换协议(protocol)
请求 header 查看源代码
连接:升级
主机:本地主机:12345
来源:http://localhost
Sec-WebSocket-Extensions:x-webkit-deflate-frame
Sec-WebSocket-Key:wovBDvKiKdy/+0Y2BQPr9w==
Sec-WebSocket-版本:13
升级:websocket
(Key3):00:00:00:00:00:00:00:00
响应头查看源
连接:升级
Sec-WebSocket-接受:1ao7ngQG4LAa3JxFibyvoocbSAM=
升级:websocket
(挑战响应):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 的服务器。有多种实现方法,这取决于您如何实现当前服务器。

关于php - 使用带有 PHP 的安全 Websocket - 加密握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com