使用 Apache 2.4 作为 websocket 的反向代理时,剥离响应 HTTP 标头

Strip a response HTTP header when using Apache 2.4 as a reverse proxy for websocket

提问人:Segolene 提问时间:6/12/2023 更新时间:6/12/2023 访问量:50

问:

我有一个仅在 HTTP 中工作的 websocket 服务器。为了向其添加 HTTPS,我在反向代理模式下使用 Apache 2.4,效果很好。

websocket 服务器坚持添加 X-Powered-By 标头,我想去掉它,因为我认为这是一个安全问题。我已经在 WAF 上剥离了它,但想在 Apache 上先发制人地剥离它。

我的 Apache 配置如下所示:

<VirtualHost *:1234>
    SSLEngine on
    SSLCertificateFile      <stripped>
    SSLCertificateKeyFile   <stripped>
    ServerName              <stripped>

    DocumentRoot            <stripped>


    ProxyPass               / ws://127.0.0.1:5454/
    ProxyPassReverse        / ws://127.0.0.1:5454/


    ErrorLog                <stripped>
    CustomLog               <stripped>

    Header always unset "X-Powered-By"
 
</VirtualHost>

当通过 Chrome 开发工具检查 websocket 连接的响应标头时,我发现 X-Powered-By 标头仍然存在。当尝试通过“Header add”添加标题来测试事物时,我发现所需的标题不存在。就 ProxyPass 和/或 ws:// 方案而言,好像整个 Header 指令都被忽略了。

将不胜感激任何见解。

谢谢。

PS:我知道 NGINX 可能会让这更容易,但我想继续使用 Apache。 PPS:是的,mod_headers处于活动状态,并且向非代理和非 ws 虚拟主机添加标头可以完美地工作。

Apache HTTP WebSocket 代理 头文件

评论

0赞 Nic3500 6/17/2023
serverfault.com/questions/519845/ 对于Apache 2.2,请测试一下,它可能仍然适用于2.4。
0赞 Segolene 6/20/2023
适用于 http:// 代理方案,不适用于 ws://

答: 暂无答案