mod_proxy_wstunnel在连接到非加密后端时是否会加密数据?

时间:2014-10-07 18:40:17

标签: websocket mod-proxy ratchet

我是Websockets的新手,我有以下设置(如下)。我想要确定的是,从Apache回到浏览器的通信是否真正安全。

我通过wss://(端口443)从浏览器启动WebSocket连接到Apache。通过mod_proxy_wstunnel,我通过端口8080上的非安全ws://连接连接到Ratchet。

当Ratchet通过非安全端口8080发回数据帧时,mod_proxy_wstunnel会对数据进行加密,以便Apache将其发送回加密的浏览器吗?

|---------|  443  |--------------|     |--------------------|  8080  |---------|
| Browser | <---> | Apache httpd | <-> | mod_proxy_wstunnel | <----> | Ratchet |
|---------|       |--------------|     |--------------------|        |---------|

我知道初始连接是通过端口443上的HTTPS完成的,并通过WebSocket握手来切换协议。但是根据协议切换后的https://www.websocket.org/aboutwebsocket.html,&#34; HTTP连接中断,并在同一底层TCP / IP连接上被WebSocket连接取代。默认情况下,WebSocket连接使用与HTTP(80)和HTTPS(443)相同的端口。&#34;

仅仅因为它在同一个端口上进行通信,对我来说并不一定意味着它仍然是真正加密的,特别是当HTTP连接崩溃时。&#34;在这个例子中,我看起来mod_proxy_wstunnel只是简单地从Ratchet转发数据,因此数据通过端口443不受保护地传递,给人一种错误的安全感。

1 个答案:

答案 0 :(得分:0)

我有完全相同的设置,除了我在后端使用Crossbar IO而不是Ratchet。

我使用Wireshark调查安全连接和非安全连接的数据包。我可以轻松读取不安全连接的数据(如您所料)。当我切换到安全时,Wireshark甚至没有意识到使用了websocket协议,我也看不到任何与我的数据类似的东西。

由此我得出结论,mod_proxy_wstunnel会像你希望的那样加密它发送回浏览器的数据。