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ę,

rix
źródło

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

Mikrofon
źródło
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.

Jon B.
źródło