Przekierowanie SSL w instancji EC2 za modułem równoważącym obciążenie kończącym SSL


11

Próbuję przekierować wszystkie adresy URL do https w aplikacji internetowej.

Mam instancję ec2 za elastycznym modułem równoważenia obciążenia. Protokół SSL jest zakończony w module równoważenia obciążenia.

Wszelkie próby przekierowania kończą się znajomym „żądaniem tej strony w sposób, który nigdy się nie zakończy”.

Moduł równoważenia obciążenia przesyła 443 i 80 do portu 80 w instancji.

To właśnie mam w moim .htaccess.

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

Czy ktoś ma pomysł, jak to osiągnąć? Dziękuję,

Odpowiedzi:


17

niesprawdzone ... ale próbuję tego

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
Tak! Dziękuję bardzo. Zmagam się z tym od jakiegoś czasu. Bardzo mile widziane. Upvote proszę, odpowiedz na to pytanie, jeśli znajdziesz tę pomoc. Dziękuję ...
rix

link jest zerwany
Bill Rosmus

Rozwiązanie nadal działa. Niektóre wyjaśnienia można znaleźć tutaj: docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/...
Tim

Pracował dla mnie. Testowane dzisiaj
Ben Sinclair

0

Odpowiedź Mike'a jest w większości poprawna, ale ważne jest, aby zwrócić uwagę, że moduł równoważenia obciążenia nadal będzie musiał przeprowadzić procedurę sprawdzania kondycji, aby upewnić się, że instancja ec2 nadal działa i ma się dobrze. Można to zrobić za pomocą dodatkowegoRewriteCond

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

... gdzie alive.htmljest nazwa pliku kontroli zdrowia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.