Redirection SSL sur l'instance EC2 derrière l'équilibreur de charge de terminaison SSL


11

J'essaie de rediriger toutes les URL vers https dans une application Web.

J'ai une instance ec2 derrière un équilibreur de charge élastique. SSL est terminé sur l'équilibreur de charge.

Toute tentative de redirection finit par me donner le familier «cette page demande d'une manière qui ne se terminera jamais».

L'équilibreur de charge transfère 443 et 80 au port 80 sur l'instance.

C'est ce que j'ai dans mon .htaccess.

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

Quelqu'un a-t-il une idée de comment y parvenir? Merci,

Réponses:


17

non testé .. mais j'essaye

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-forwarded-proto


1
Oui! Merci beaucoup. Je me bats avec ça depuis un moment maintenant. Très appréciée. S'il vous plaît, votez pour cette réponse si vous trouvez cette aide. Merci ...
rix

le lien est rompu
Bill Rosmus

La solution fonctionne toujours. Des explications peuvent être trouvées ici: docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…
Tim

A travaillé pour moi. Testé aujourd'hui
Ben Sinclair

0

La réponse de Mike est généralement correcte, mais il est important de souligner que l'équilibreur de charge devra toujours exécuter sa routine de vérification de l'état pour s'assurer que l'instance ec2 est toujours en vie. Cela peut être fait avec un supplémentRewriteCond

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

... où alive.htmlest le nom de votre fichier de bilan de santé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.