Перенаправление SSL на экземпляр EC2 за балансировщиком нагрузки завершения SSL

11

Я пытаюсь перенаправить все URL-адреса на https в веб-приложении.

У меня есть экземпляр ec2 за эластичным балансировщиком нагрузки. SSL прекращается на балансировщике нагрузки.

Любые попытки перенаправления в конечном итоге дают мне знакомое «эта страница запрашивает таким образом, который никогда не завершится».

Балансировщик нагрузки перенаправляет 443 и 80 в порт 80 экземпляра.

Это то, что у меня есть в моем .htaccess.

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

У кого-нибудь есть идеи, как этого добиться? Доброе спасибо,

RIX
источник

Ответы:

17

не проверено .. но я пытаюсь это

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
Да! Огромное спасибо. Некоторое время боролся с этим. Очень признателен. Пожалуйста, подтвердите, что это ответ, если вы найдете эту помощь. Спасибо ...
Рикс
ссылка не работает
Билл Росмус
Решение все еще работает. Некоторое объяснение можно найти здесь: docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/…
Тим
Работал на меня. Проверено сегодня
Бен Синклер,
0

Ответ Майка в основном правильный, но важно указать, что балансировщику нагрузки все равно нужно будет выполнить свою проверку работоспособности, чтобы убедиться, что экземпляр ec2 все еще жив и исправен. Это можно сделать с помощью дополнительногоRewriteCond

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

... где alive.htmlимя вашего файла проверки здоровья.

Джон Б
источник