Redirección de Apache http a https con proxy inverso Squid

Redirección de Apache http a https con proxy inverso Squid

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.comen la configuración de su host virtual Apache. El wwwprefijo es técnicamente un subdominio de example.comy, 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.comla ServerAliasdirectiva:

# 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.coma 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í.

información relacionada