Nosso pessoal de operações de rede configurou a terminação SSL e, em seguida, fez proxy reverso da solicitação para nós. A exigência deles é que, se eles virem a entrada na porta 443, devemos servir o conteúdo na porta 443, portanto, estamos servindo conteúdo não criptografado na porta 443. Essa é uma invariante que temos que contornar.
Na maior parte, isso não é um problema. Nós Listen 443
e não configuramos SSL, e tudo funciona, exceto... redirecionamentos.
Por exemplo, se definirmos:
Alias /foo /path/to/foo
<Directory /path/to/foo>
...
</Directory>
O Apache é inteligente o suficiente para redirecionar uma solicitação /foo
para /foo/
. Quando usamos http na porta 80, funciona muito bem. Porém, quando o cliente está usando https na porta 443, acabamos com um redirecionamento Location
parecido com este:
Location: http://my.example.com:443/foo/
O problema é que não queremos redirecionar de um protocolo seguro para um inseguro, não que isso importe, já que não servimos conteúdo inseguro na porta 443.
Suponho que haja uma maneira melhor de dizer ao Apache que esta solicitação era originalmente uma solicitação segura, mas não conheço muito bem a configuração do Apache. Espero não precisar criar manualmente um redirecionamento para cada Directory
entrada, especialmente porque algum conteúdo está disponível em formatos seguros e inseguros.
Alguém tem alguma indicação de documentos que possam ajudar (infelizmente, não consigo encontrar o encantamento certo do Google para ajudar)? Dicas sobre a melhor maneira de lidar com isso também foram apreciadas. :)
Responder1
Este cenário está descrito na documentação doNome do servidor:
Às vezes, o servidor é executado atrás de um dispositivo que processa SSL, como um proxy reverso, um balanceador de carga ou um dispositivo de descarregamento de SSL. Quando for esse o caso, especifique o esquema https:// e o número da porta à qual os clientes se conectam na diretiva ServerName para garantir que o servidor gere as URLs autorreferenciais corretas.
Se quiser fazer isso e manter a porta 80 funcionando ao mesmo tempo, você terá que usar um VirtualHost para pelo menos um deles, para poder adicionar um ServerName separado.