apache 2.4.6 reverseeproxy mod_proxy_wstunnel for secure websocket wss://失败

时间:2013-07-26 19:40:20

标签: apache websocket reverse-proxy proxytunnel

我正在尝试将apache server 2.4.6配置为支持websocket代理的最新版本。

我得到非安全的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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

这是mod_proxy_wstunnel中的错误。无论url方案如何(ws://或wss://),它总是会向后端服务器发送明文。

此处报告错误: https://issues.apache.org/bugzilla/show_bug.cgi?id=55320

错误修复相当简单(并在错误报告中提供)。因此,如果你真的需要wss://后端通信,你可能想要自己应用它。重建模块。

答案 1 :(得分: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