Sirviendo http con Apache en el puerto 443 detrás del terminador SSL

Sirviendo http con Apache en el puerto 443 detrás del terminador SSL

Nuestra gente de operaciones de red ha configurado la terminación SSL y luego nos envía la solicitud mediante proxy inverso. Su requisito es que, si vieron la entrada en el puerto 443, debemos entregar el contenido en el puerto 443, por lo que estamos entregando contenido no cifrado en el puerto 443. Esa es una invariante que tenemos que solucionar.

En su mayor parte, esto no es un problema. Nosotros Listen 443y no configuramos SSL, y todo funciona, excepto... redireccionamientos.

Como ejemplo, si definimos:

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

Apache es lo suficientemente inteligente como para redirigir una solicitud /fooa /foo/. Cuando usamos http en el puerto 80, funciona muy bien. Sin embargo, cuando el cliente usa https en el puerto 443, terminamos con una redirección con un Locationaspecto similar a este:

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

El problema es que no queremos redirigir desde un protocolo seguro a uno inseguro, no es que importe, ya que no ofrecemos contenido inseguro en el puerto 443.

Supongo que hay una mejor manera de decirle a Apache que esta solicitud era originalmente una solicitud segura, pero no conozco muy bien la configuración de Apache. Espero no tener que crear manualmente una redirección para cada Directoryentrada, especialmente porque parte del contenido está disponible en formas seguras e inseguras.

¿Alguien tiene alguna sugerencia sobre documentos que puedan ayudar (desafortunadamente, no puedo encontrar el encantamiento de Google adecuado para ayudar)? También se agradecen sugerencias sobre la mejor manera de manejar esto. :)

Respuesta1

Este escenario se describe en la documentación deNombre del servidor:

A veces, el servidor se ejecuta detrás de un dispositivo que procesa SSL, como un proxy inverso, un equilibrador de carga o un dispositivo de descarga SSL. Cuando este sea el caso, especifique el esquema https:// y el número de puerto al que se conectan los clientes en la directiva ServerName para asegurarse de que el servidor genere las URL autorreferenciales correctas.

Si desea hacer esto y mantener el puerto 80 funcionando al mismo tiempo, deberá usar un VirtualHost para al menos uno de ellos, de modo que pueda agregar un nombre de servidor separado.

información relacionada