用于安全 websocket wss 的 apache 2.4.6 reverseproxy mod_proxy_wstunnel ://fails

标签 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

任何帮助将不胜感激。

最佳答案

这是 mod_proxy_wstunnel 中的一个错误。无论 url 方案(ws://或 wss://)如何,它都会将纯文本发送到后端服务器。

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

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

关于用于安全 websocket wss 的 apache 2.4.6 reverseproxy mod_proxy_wstunnel ://fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889676/

相关文章:

php - 非动态自定义HTTP header

php - VPS 上的 Apache 沙箱和文件上传

php - 从html上传文件中保存文件到/var/www

php - htaccess 反向目录

node.js - 如何正确反向代理nodejs子路由?

ssl - 使 lighttpd (lighty) 代理根据服务器名称指示转发 HTTPS 请求,而不返回 SSL 证书

java - Jersey 隐藏了 Spring 框架和 SockJS

java - spring webflux - websocketclient 线程未终止

c++ - Websocketpp 设置消息处理程序

Apache 反向代理 "Failed to load resource"502 代理错误