Tim*_*eli 8 security firefox wss websocket
我有一个带有 Spring Boot Websockets 的 websocket 服务器主机。Safari、Chrome 和 Edge 可以连接,但 Firefox 不能。错误:
Firefox kann keine Verbindung zu dem 服务器在 wss://MY_DOMAIN/growth-websocket/933/omw002tp/websocket aufbauen。
(= "Firefox 无法在 wss://...处建立到服务器的连接")
我正在用 Apache 代理 WebSockets:
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:4567%{REQUEST_URI} [P]
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
经过几次尝试后,我在我的Docker OIDC 代理上成功运行了。棘手的一点是当 websockets 和普通 HTTP 的代理 URI 相同时允许它工作。如果它是不同的,我们可以简单地在它之前有另一个ProxyPass/ProxyPassReverse组合。
为了支持这一点,Rewrite引擎用于检测是否设置了Upgrade和标头,如果设置了则进行相应的代理。第二个棘手的地方Conntextion[虽然我不确定为什么]是将其放在and指令之后。ProxyPassProxyPassReverse
这是上下文中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]
Run Code Online (Sandbox Code Playgroud)
我能够使用使用 Web 套接字的 Jupyter 笔记本服务器成功验证这一点。
| 归档时间: |
|
| 查看次数: |
6417 次 |
| 最近记录: |