Apache2:从 https 到 http 的代理是否安全

Apache2:从 https 到 http 的代理是否安全

我对所有服务器内容都很陌生,并且我有一个关于 Apache 代理安全性的疑问。

我正在做的是:我有一个在同一个系统上的端口 11221 上以非安全模式运行的 websocket 服务器(仅限本地主机,但使用 apache,它是一个不同的应用程序)。

在我的 apache 中,我创建了一个带有该服务器代理的配置:

ServerName websocket.example.com

SSLCertificateFile /path/to/fullchain.pem
SSLCertificateKeyFile /path/to/privkey.pem

ProxyPass / ws://localhost:11221/
ProxyPassReverse / ws://localhost:11221/

这种组合工作完美,我可以使用安全的websocket 连接到服务器(使用wss://websocket.example.com)。我检查过,我无法直接连接到它。ws://websocket.example.com:11221将失败,并显示连接被拒绝(正如预期的那样)。

我现在的问题是:这安全吗?也就是说,即使更改为 websocket 协议后,连接是否仍保持加密状态?据我从研究中所了解,它确实保持加密状态,但我找不到明确的答案。

答案1

显然,SSL 层仅适用于从客户端到 apache 的连接;这才是您配置 apache 的原因,不是吗?(​​也称为“SSL 卸载”。我通常为此使用 pound 或 haproxy,如果您仅使用 apache 进行此操作,则它们比 apache 更简单/更小。)

apache 与监听端口 11221 的任何对象之间的通信必然是未加密的;否则您还需要将 SLL 证书安装到 websocket 应用程序中(并且使用 https:// 而不是 ws://)。

也就是说,如果您无法让一个进程将数据传输到同一系统上的另一个进程(毕竟您使用进程localhost进行通信),那么您将面临更大的问题。理论上,在本地系统上拥有适当权限的人可以窃听通信,但该人也可以简单地使用所strace涉及的进程来获取数据。

相关内容