Apache 2.4.6 reverseeproxy mod_proxy_wstunnel для безопасного websocket wss://не работает

Я пытаюсь настроить Apache Server 2.4.6 на новейшую версию, поддерживающую прокси-сервер websocket.

Я получил незащищенное соединение с websocket, чтобы работать как ожидалось, и прокси-сервер HTTPS также работает [это, чтобы удалить конфигурацию SSL в качестве основной причины] Но мое соединение wss://не работает. Хотя устранение неполадок с помощью wirehark я узнал, что на 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

Любая помощь будет принята с благодарностью.

Ответ 1

Это ошибка в mod_proxy_wstunnel. Он всегда будет отправлять открытый текст на серверный сервер независимо от схемы URL (ws://или wss://).

Об ошибке сообщается здесь: https://issues.apache.org/bugzilla/show_bug.cgi?id=55320

Исправление ошибок довольно просто (и приведено в отчете об ошибке). Поэтому, если вам действительно нужна связь wss://backend, вы можете применить ее самостоятельно и перестроить модуль.

Ответ 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