我们的网络运营人员已经设置了 SSL 终止,然后将请求反向代理给我们。他们的要求是,如果他们看到端口 443 上的输入,我们必须在端口 443 上提供内容,因此我们在端口 443 上提供未加密的内容。这是我们必须解决的不变量。
大多数情况下,这不是问题。我们Listen 443并且不设置 SSL,并且一切正常,除了...重定向。
例如,如果我们定义:
Alias /foo /path/to/foo
<Directory /path/to/foo>
...
</Directory>
Run Code Online (Sandbox Code Playgroud)
Apache 足够聪明,可以将请求重定向/foo到/foo/. 当我们在端口 80 上使用 http 时,效果很好。然而,当客户端在端口 443 上使用 https 时,我们最终会得到一个Location类似这样的重定向:
Location: http://my.example.com:443/foo/
Run Code Online (Sandbox Code Playgroud)
问题是我们不想从安全协议重定向到不安全协议,这并不重要,因为我们不在端口 443 上提供不安全的内容。
我猜有更好的方法告诉 Apache 这个请求最初是一个安全请求,但我不太了解 Apache 配置。我希望我不必为每个Directory条目手动创建重定向,特别是因为某些内容以安全和不安全的形式提供。
任何人都有任何可以提供帮助的文档的指示(不幸的是,我无法想出正确的谷歌咒语来提供帮助)?处理此问题的最佳方法的指针也受到赞赏。:)
小智 5
ServerName的文档中描述了这种情况:
有时,服务器在处理 SSL 的设备后面运行,例如反向代理、负载平衡器或 SSL 卸载设备。在这种情况下,请在 ServerName 指令中指定 https:// 方案和客户端连接到的端口号,以确保服务器生成正确的自引用 URL。
如果您想这样做并同时保持端口 80 工作,则必须至少为其中一个使用 VirtualHost,因此您可以添加单独的 ServerName。
| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |