
Tengo un servidor web que ejecuta el sitio web example.com. He configurado la redirección de http a https en Apache; Vea abajo
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /usr/www/htdocs
SSLEngine On #etc...
</VirtualHost>
Una solicitud en http se redirige exitosamente internamente.
Entonces el problema es que la solicitud externa tiene que pasar por Squid Reverse Proxy. Y cuando intenta conectarse a http://example .com, se establece una conexión http. No https, la redirección no tuvo éxito.
Si ingresamos la URL comohttp://ejemplo.com/index.html, la conexión redirige a https con éxito.
¿Alguien tiene una idea sobre cómo podemos solucionar este problema?
Respuesta1
Al intentar conectarse a
http://example.com
, se establece una conexión HTTP, no HTTPS, y la redirección no tiene éxito.
Un problema que parece tener es que no hay entradas http://example.com
en la configuración de su host virtual Apache. El www
prefijo es técnicamente un subdominio de example.com
y, por lo tanto, se considera un sitio independiente para su resolución. Excluyendo cualquier problema con Squid, una solución simple sería modificar sus hosts virtuales para tener en cuenta las diferentes variaciones de example.com
la ServerAlias
directiva:
# Redirect http://example.com and http://www.example.com
# to https://www.example.com
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>
# Serve https://example.com and https://www.example.com
# from the same DocumentRoot
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /usr/www/htdocs
SSLEngine On #etc...
</VirtualHost>
Tenga en cuenta que también puede redirigir https://example.com
a https://www.example.com
:
# Redirect http://example.com and http://www.example.com
# to https://www.example.com
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>
# Redirect https://example.com to https://www.example.com
<VirtualHost *:443>
ServerName example.com
Redirect permanent / https://www.example.com
SSLEngine On #etc...
</VirtualHost>
# Serve https://www.example.com
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /usr/www/htdocs
SSLEngine On #etc...
</VirtualHost>
Puede leer más sobre hosts virtuales basados en nombresaquí.