Назад | Перейти на главную страницу

Перенаправление SSL-порта Amazon VPC ELB

У меня есть эластичный балансировщик нагрузки с 2 открытыми портами, 80 и 443. На 443 есть SSL. и 80, и 443 перенаправляются на порт 80 внутреннего сервера.

Проблема в том, что я хочу запускать свой сайт только через порт 443 (SSL включен) и никогда не использовать открытый текст. теперь я не уверен, как мне нужно будет организовать ELB и порты на сервере, чтобы при поступлении запроса на порт 80 он всегда перенаправлялся на порт 443.

В приведенном выше случае есть вид перенаправления, поскольку я поставил правило REWIRTE для перенаправления на 443 с 80 в apache.

Любое решение для этого?

С форумов Amazon.

Позвольте мне сначала сформулировать проблему, которую вы пытаетесь решить, чтобы понять, правильно ли я ее понял: вы хотите, чтобы весь пользовательский трафик, проходящий через ELB и поступающий в экземпляры EC2, происходил через HTTPS.

Если это так, краткий ответ - да, но это потребует некоторой работы над AMI и ELB.

  1. Следуйте инструкциям, выделенным в документации, о том, как создать собственный AMI..
  2. Загрузите свой SSL сертификат к экземпляру.
  3. Создайте файл хранилища ключей для хранения закрытого ключа и сертификата.
  4. Все запросы к Tomcat передаются через Apache. Я предполагаю, что вы прекратите SSL подключение в Apache. В качестве первого шага установите mod_ssl с помощью:

yum установить mod_ssl

  1. Добавить HTTPS слушатель Apache на port 443.
  2. Загрузите сертификат своего веб-приложения в IAM. Для получения дополнительной информации см. Это.
  3. Добавить слушателя в ELB используя ELB командная строка.
  4. Добавить слушателя в ELB который слушает трафик на port 443 и направляет трафик на port 443 на экземплярах, использующих сертификат, который вы загрузили в IAM.

(Необязательно) Вы можете использовать аутентификацию сертификата для аутентификации трафика между ELB и экземпляры EC2. Вам понадобится открытый ключ сертификата, который вы используете в хранилище ключей экземпляра EC2.

Примечание. Вышеупомянутые шаги позволяют прекратить SSL подключения в экземплярах EC2. Полностью выключить невозможно port 80 на экземплярах, поскольку Elastic Beanstalk взаимодействует с Host Manager, используя этот порт. Вы можете выключить port 80 на ELB если вы хотите это сделать.

источник: ВОТ

Есть два способа решить эту проблему.

1) Пусть apache обслуживает как порт 80, так и порт 443, с перенаправлением ELB на эти порты соответственно.

2) Обработайте это на уровне приложения. Сделайте ваше приложение принудительным https: // перед рендерингом любых страниц.