我是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上被傳遞爲未加密,給人一種錯誤的安全感。