Redirección SSL en la instancia EC2 detrás del equilibrador de carga de terminación SSL

11

Estoy tratando de redirigir todas las URL a https en una aplicación web.

Tengo una instancia ec2 detrás de un equilibrador de carga elástico. SSL finaliza en el equilibrador de carga.

Cualquier intento de redirección termina dándome el familiar 'esta página está solicitando de una manera que nunca se completará'.

El equilibrador de carga reenvía 443 y 80 al puerto 80 en la instancia.

Esto es lo que tengo en mi .htaccess.

RewriteCond %{X-FORWARDED-PROTO} !=on  
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

¿Alguien tiene alguna idea de cómo lograr esto? Gracias

rix
fuente

Respuestas:

17

no probado ... pero intento esto

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwards-proto

Miguel
fuente
1
¡Si! Muchas gracias. He estado luchando con esto por un tiempo ahora. Muy apreciado. Vota a favor esta respuesta si encuentras que esto es una ayuda. Gracias ...
rix
el enlace está roto
Bill Rosmus
La solución aún funciona. Puede
Tim
Trabajó para mi. Probado hoy
Ben Sinclair
0

La respuesta de Mike es en su mayoría correcta, pero es importante señalar que el equilibrador de carga seguirá necesitando llevar a cabo su rutina de comprobación de estado para garantizar que la instancia de ec2 siga viva y en buen estado. Esto se puede hacer con un adicionalRewriteCond

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

... donde alive.htmlestá el nombre de su archivo de verificación de salud.

Jon B
fuente