[英]apache 2.4.6 reverseproxy mod_proxy_wstunnel for secure websocket wss:// fails
我正在嘗試將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://),它總是會向后端服務器發送明文。
這里報告了這個bug: https : //issues.apache.org/bugzilla/show_bug.cgi?id = 55320
錯誤修復相當簡單(並在錯誤報告中提供)。 因此,如果您真的需要wss://后端通信,您可能希望自己應用它並重建模塊。
在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.