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.