2013-07-26 86 views
11

私はapache serverを設定しようとしています。2.4.6 websocket proxyをサポートする最新バージョンです。apache 2.4.6 reverseproxy mod_proxy_wstunnelが安全なwebsocketのために失敗しました:

期待したとおりに動作するようにセキュリティで保護されていないWebSocket接続があり、HTTPSプロキシも同様に動作します[これはSSLの設定を根本原因として削除します]しかし、私のwss://接続は失敗します。 wiresharkを使ってトラブルシューティングをしているうちに、wss://でプレーンテキストを使って接続していることが分かりました。 //cbscclrd.ca.wm.com:

<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に開始:

は、ここに私のApacheの設定だ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 
関連する問題