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,

rix
la source

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

Mike
la source
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é.

Jon B
la source