#amazon-web-services #amazon-ec2 #amazon-elastic-beanstalk #amazon-elb
#amazon-web-services #amazon-ec2 #amazon-elastic-beanstalk #amazon-elb
Вопрос:
У меня есть веб-сайт PHP (назовет его awesomedomain.com с этого момента.) в настоящее время нагрузка сбалансирована в Elastic Beanstalk с запущенным и запущенным SSL.
Я могу получить безопасное соединение с сайтом с помощью https://awesomedomain.com / однако всякий раз, когда я вхожу «awesomedomain.com » он по-прежнему подключается как незащищенный порт.
У меня есть два настроенных прослушивателя 80 и 443. Как я могу перенаправить весь поступающий трафик на порт 443 для глобального SSL-соединения?
Заранее спасибо всем.
Приветствия,
~ биография
Ответ №1:
Вы можете задать два способа :
- Правилом настройки является файл хоста :
NameVirtualHost *:80
<VirtualHost *:80>
ServerName abc.example.com
Redirect permanent / https://abc.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName abc.example.com
DocumentRoot /var/www/html/example
SSLEngine On
</VirtualHost>
Не забудьте перезапустить сервер после внесения изменений.
- В
.htaccess
файле :
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
- Если вы используете CloudFront и ELB в качестве конечной точки для ssl-сертификата, то CloudFront имеет возможность перенаправлять http на https все запросы.
Комментарии:
1. Это может привести к нарушению проверки работоспособности балансировщика нагрузки без дополнительной настройки для предотвращения перенаправлений по URL-адресу проверки работоспособности. Это также не будет работать с балансировщиком нагрузки, который завершает SSL, поскольку сервер всегда будет видеть запрос как HTTP и должен будет проверять заголовок для исходного протокола.
2. Вы правы. Есть разные варианты, которые нужно выбрать из лучших.
Ответ №2:
Когда вы просто вводите «awesomedomain.com » браузер автоматически добавляет к нему «http://», а затем пытается подключиться к порту 80
этого сервера. Ваше приложение должно отправлять перенаправление на запросы с порта 80 на порт 443, чтобы заставить браузер использовать SSL. Если вы используете средство балансировки нагрузки приложений (ALB) или CloudFront, вы можете настроить перенаправление там. В противном случае вашему серверу необходимо определить значение X-Forwarded-Proto
заголовка из балансировщика нагрузки и выполнить перенаправление, если это не 443
так.
Метод выполнения этого в Elastic Beanstalk описан здесь .