【问题标题】:apache 2.4.6 reverseproxy mod_proxy_wstunnel for secure websocket wss:// fails用于安全 websocket wss:// 的 apache 2.4.6 reverseproxy mod_proxy_wstunnel 失败
【发布时间】:2013-07-27 05:09:15
【问题描述】:

我正在尝试将 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网络 ssl SSLException

任何帮助将不胜感激。

【问题讨论】:

    标签: apache websocket reverse-proxy proxytunnel


    【解决方案1】:

    这是 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
      

      【讨论】:

        猜你喜欢
        • 2015-09-17
        • 1970-01-01
        • 2015-12-18
        • 2013-09-18
        • 2017-02-06
        • 1970-01-01
        • 2014-07-06
        • 2021-09-28
        • 2012-06-13
        相关资源
        最近更新 更多