Как перенаправить обычный вход в домен на защищенный порт 443 с помощью Elastic Beanstalk

#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:

Вы можете задать два способа :

  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>
  

Не забудьте перезапустить сервер после внесения изменений.

  1. В .htaccess файле :
 RewriteEngine On

RewriteCond %{HTTPS} off 

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
  
  1. Если вы используете 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 описан здесь .