与PHP一起使用安全Websocket - Crypted握手

问题描述:

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

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

如果我配置apache来激活SSL引擎并侦听12345端口。我将无法再使用此端口为我的PHP WebSocket的服务器,因为它会接着在状态“已使用” ...或者我已经忘记了什么......

我迷路了:(

编辑:

这里是(使用wss://)我安全的WebSocket头:

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

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

+0

可能与[html5 Websocket with SSL]重复(http://*.com/questions/9745249/html5-websocket-with-ssl) – 2012-07-12 11:12:17

+0

我已经看到这个帖子,不,它不是重复=) – Rodolf 2012-07-12 11:16:33

+0

不,它会回答你的问题。如果你的套接字是用'ws://'打开的,那么它将是一个标准套接字。如果它是'wss://',它将是一个SSL套接字。 – 2012-07-12 11:20:14

我读的(安全)的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功能的服务器。有多种实现方式,它取决于你如何实现当前的服务器。

+0

我需要https://和wss:// fe atures。我是否需要使用第二个证书来配置端口12345,如httpd.conf文件(Apache2)中的端口443,或者我购买的端口可以使用两次?感谢顺便解释=) – Rodolf 2012-07-13 09:47:13

+0

您可以使用相同的证书,如果是我,我不会尝试使用Apache来处理WS/WSS的流量在所有 - 有更好的解决方案。这是最好的取决于你已经到位了,但是你可以做的不如看看https://github.com/kumina/wsproxy – symcbean 2012-07-14 23:29:01

+0

我想知道是否有可能解密PHP的WebSocket服务器SSL(例如使用OpenSSL)。使用stunnel可能是一个很好的解决方案,因为如果我理解它的工作原理,我将不必更改我的websocket服务器。 – Rodolf 2012-07-17 07:15:49