Наш веб-сайт нуждается в соответствии HIPAA, поэтому все должно быть зашифровано. Я не хочу, чтобы клиент получал сообщение об ошибке, когда они помещали в « http : //mysite.com», поэтому мне нужно поддерживать HTTP и HTTPS и перенаправлять HTTP на HTTPS. Я прав?
Я сделал это правильно на веб-серверах. Поэтому, если я подключаюсь напрямую к веб-серверам, HTTP автоматически перенаправляется на HTTPS. Все хорошо.
Но веб-серверы находятся за AWS Application Load Balancer. Я не знаю, как перенаправить HTTP на HTTPS на ELB. Таким образом, клиентские браузеры все еще могут подключаться к ELB через HTTP.
Как настроить HTTP => HTTPS на балансировщике нагрузки приложений AWS?
Другими словами, я уверен, что соединение между ELB и веб-серверами является HTTPS, но как убедиться, что соединение между клиентскими браузерами и ELB является HTTPS?
источник
X-Forwarded-Proto
заголовке, который посылает LB.Ответы:
Вы можете добавить приведенную ниже конфигурацию в ваш файл .htaccess. Но перед этим убедитесь, что mod_rewrite включен на сервере и файл .htaccess не запрещен.
Для подробного объяснения просим ознакомиться с официальной документацией с конца aws. https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/
источник
По состоянию на июль 2018 года это поддерживается балансировщиками нагрузки приложений.
HTTP:80
слушателяRedirect
https
443
Original host, path, query
301 - Permanently moved
Изображение настроек для прослушивателя HTTP-HTTPS в балансировщике нагрузки приложения AWS
источник
Обычно происходит то, что ELB настроен на прием https (порт 443) и пересылку на экземпляр EC2 (цель балансировщика нагрузки) по http (порт 80).
Базовый веб-сервер перенаправляет эти запросы на порт 443 на балансировщике нагрузки, вызывая бесконечный цикл перенаправления (между балансировщиком нагрузки и внутренним веб-сервером).
Распространенное сообщение об ошибке
ERR_TOO_MANY_REDIRECTS
.Решение состоит в том, чтобы взглянуть на X-Forwarded-Proto, который является протоколом, который видит балансировщик нагрузки, при принятии решения о перенаправлении.
Для nginx конфиг будет выглядеть так:
и для apache .htaccess что-то вроде этого:
ПРИМЕЧАНИЕ. Хотя можно подумать, что было бы удобно, если бы это можно было обрабатывать без перенастройки веб-сервера, с весны 2018 года нет способа решить эту проблему, используя только ELB, т. Е. Вы должны настроить свой веб-сервер, чтобы это работало.
источник