使用 Apache 在 SSL 终止器后面的 443 端口上提供 http 服务

使用 Apache 在 SSL 终止器后面的 443 端口上提供 http 服务

我们的网络运营人员已设置 SSL 终止,然后将请求反向代理给我们。他们的要求是,如果他们在端口 443 上看到输入,我们必须在端口 443 上提供内容,因此我们在端口 443 上提供未加密的内容。这是我们必须解决的一个不变量。

在大多数情况下,这不是问题。我们Listen 443不会设置 SSL,一切都正常,除了...重定向。

举个例子,如果我们定义:

Alias /foo /path/to/foo
<Directory /path/to/foo>
    ...
</Directory>

Apache 非常聪明,可以将请求重定向到/foo/foo/当我们在端口 80 上使用 http 时,它工作得很好。但是,当客户端在端口 443 上使用 https 时,我们最终会得到一个重定向,如下所示Location

Location: http://my.example.com:443/foo/

问题是我们不想从安全协议重定向到不安全的协议,但这并不重要,因为我们不在端口 443 上提供不安全的内容。

我猜想有更好的方法可以告诉 Apache 此请求原本是安全请求,但我不太了解 Apache 配置。我希望不必为每个Directory条目手动创建重定向,尤其是因为某些内容既有安全形式也有不安全形式。

有没有人能提供一些文档帮助(不幸的是,我找不到合适的谷歌咒语来帮助)?如果能提供处理这个问题的最佳方法,也非常感谢。:)

答案1

此场景在以下文档中进行了描述:服务器名称

有时,服务器会在处理 SSL 的设备(例如反向代理、负载平衡器或 SSL 卸载设备)后面运行。在这种情况下,请在 ServerName 指令中指定 https:// 方案和客户端连接的端口号,以确保服务器生成正确的自引用 URL。

如果您想这样做并同时保持端口 80 工作,则必须至少对其中一个使用 VirtualHost,这样您就可以添加单独的 ServerName。

相关内容