我们的networking操作人员已经build立了SSL终止,然后将请求反向代理给我们。 他们的要求是,如果他们看到443端口的input,我们必须在端口443上提供内容,所以我们在443端口上提供未encryption的内容。这是我们必须解决的一个不变的问题。
大多数情况下,这不是问题。 我们Listen 443 ,不要设置SSL,而且事情工作,除了…redirect。
作为一个例子,如果我们定义:
Alias /foo /path/to/foo <Directory /path/to/foo> ... </Directory>
Apache很聪明,可以将请求redirect到/foo/ 。 当我们在端口80上使用http时,效果很好。 但是,当客户端在端口443上使用https时,我们最终得到一个redirect,其Location如下所示:
Location: http://my.example.com:443/foo/
问题是我们不想从一个安全的协议redirect到一个不安全的协议,这并不重要,因为我们不在443端口上提供不安全的内容。
我猜测有一个更好的方式告诉Apache,这个请求本来是一个安全的请求,但是我不知道Apache的configuration。 我希望我不必手动为每个Directory条目创build一个redirect,特别是因为一些内容可用安全和不安全的forms。
任何人有任何指示文件,可以帮助(不幸的是,我不能拿出正确的谷歌咒语帮助)? 最好的方式来处理这个指针也赞赏。 🙂
ServerName的文档中描述了这种情况:
有时,服务器运行在处理SSL的设备后面,例如反向代理,负载均衡器或SSL卸载设备。 在这种情况下,请指定https://scheme和客户端在ServerName指令中连接的端口号,以确保服务器生成正确的自引用URL。
如果你想这样做,并保持端口80同时工作,你至less必须使用VirtualHost其中之一,所以你可以添加一个单独的ServerName。