2014-10-07 36 views
2

我是Websockets的新手,我有以下设置(下面)。我试图确定的是,从Apache发回到浏览器的通信是否真正安全。当连接到未加密的后端时,mod_proxy_wstunnel是否会加密数据?

我开始通过wss://(端口443)从浏览器到Apache的WebSocket连接。通过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,“HTTP连接中断,并通过相同的底层TCP/IP连接上的WebSocket连接替代。WebSocket连接使用与HTTP(80)和HTTPS(443)相同的端口,默认。”

仅仅因为它在同一端口上进行通信,并不一定意味着它仍然是真正加密的,特别是当HTTP连接“中断”时。在这种情况下,在我看来,mod_proxy_wstunnel只是简单地转发来自Ratchet的数据,因此数据在端口443上被传递为未加密,给人一种错误的安全感。

回答

0

我有完全相同的设置,除了我在后端代替棘轮使用交叉开关IO。

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

从这我得出结论,mod_proxy_wstunnel加密它发回给浏览器的数据,如你所愿。

相关问题