2013-07-26 126 views
11

我想配置apache服務器2.4.6支持websocket代理的最新版本。apache 2.4.6 reverseproxy mod_proxy_wstunnel安全websocket wss://失敗

我得到了不安全的websocket連接,按預期方式工作,並且HTTPS代理也正常工作[這將刪除SSL配置作爲根本原因]但是,我的wss://連接失敗。使用wireshark進行故障排除時,我發現wss://連接是通過純文本進行的。

這裏是我的Apache配置:

<VirtualHost *:4043> 

ServerName cbscclrd.ca.wm.com 
LogLevel debug 
ErrorLog "/apps/apache/httpd-2.4.6/logs/errorSSL_log" 
TransferLog "/apps/apache/httpd-2.4.6/logs/access_log" 

SSLCertificateFile "/apps/FXD1D2/SSLKeyStore/sdpssl_cert-dev.cer" 
SSLCertificateKeyFile "/apps/FXD1D2/SSLKeyStore/sdp-private-key-no-password.pem" 
SSLCACertificateFile "/tmp/Apache-PKG/CAchain.pem" 

    SSLEngine on 
    SSLProxyEngine on 
    ProxyPreserveHost On 
    ProxyRequests Off 
    ProxyPass/wss://cbscclrd.ca.wm.com:443 retry=0 keepalive=On 
    ProxyPassReverse/wss://cbscclrd.ca.wm.com:443 retry=0 

</VirtualHost> 

當連接發起WSS://cbscclrd.ca.wm.com:443它是純文本格式,因此服務器監聽「cbscclrd.ca.wm.com :443「拒絕與以下錯誤消息的連接:javax net ssl SSLException

任何幫助將不勝感激。

回答

3

這是mod_proxy_wstunnel中的一個錯誤。無論URL方案如何(ws://或wss://),它都會將明文發送到後端服務器。

該錯誤是在這裏報道: https://issues.apache.org/bugzilla/show_bug.cgi?id=55320

的漏洞修復是相當簡單的(和錯誤報告提供)。因此,如果您真的需要wss://後端通信,您可能需要自行應用&重建模塊。

2

在Apache的2.4_server.conf

ProxyPass "/ws/" "ws://127.0.0.1:4002/" 
ProxyPass "/wss/" "wss://127.0.0.1:4002/" 

... 
LoadModule proxy_module   modules/mod_proxy.so 
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 
相關問題