Firefox 无法与 WSS 建立连接

问题描述 投票:0回答:2

我有一个带有 Spring Boot Websockets 的 Websocket 服务器主机。 Safari、Chrome 和 Edge 可以连接,但 Firefox 不能。错误:

Firefox 可以在 wss://MY_DOMAIN/growth-websocket/933/omw002tp/websocket aufbauen 下连接 zu dem 服务器。

(=“Firefox 无法与位于 wss:// 的服务器建立连接...”)

我正在使用 Apache 代理 WebSocket:

RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:4567%{REQUEST_URI} [P]

感谢您的帮助!

security firefox websocket
2个回答
2
投票

经过几次尝试后,我在我的 Docker OIDC 代理上成功运行了。 棘手的一点是当 websockets 和普通 HTTP 的代理 URI 相同时允许它工作。 如果它是不同的,我们可以简单地在它之前添加另一个

ProxyPass
/
ProxyPassReverse
组合。

为了支持这一点,

Rewrite
引擎用于检测是否设置了
Upgrade
Conntextion
标头,如果设置了,则相应地进行代理。 第二个棘手的地方 [虽然我不确定为什么] 是将其放在 ProxyPass
ProxyPassReverse
指令之后。
这是上下文中

https://github.com/trajano/docker-oidc-proxy/blob/master/oidc-proxy.conf

的代码 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so LoadModule rewrite_module modules/mod_rewrite.so ... ProxyPass "/" "http://${SERVICE_NAME}:${SERVICE_PORT}/" ProxyPassReverse "/" "http://${SERVICE_NAME}:${SERVICE_PORT}/" ProxyPreserveHost On ProxyVia On RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://${SERVICE_NAME}:${SERVICE_PORT}%{REQUEST_URI} [P]

我能够使用使用 Web 套接字的 Jupyter 笔记本服务器成功验证这一点。


0
投票

我创建了一个类似的问题并提供了两个不同的答案,都按预期工作。一个答案是关于如何配置 Apache 代理以使 ws:// 通过 https 工作,另一个答案是如何生成自签名证书,以便在不使用代理的情况下使用 HTTPS 和 WSS 而不会出现问题。

无法使用 javascript 与安全 Websocket 服务器建立连接

请仔细阅读我留下的评论。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.