перенаправление ssl в докер-контейнер на aws ecs - PullRequest
0 голосов
/ 23 октября 2019

У меня есть внешнее угловое приложение, запущенное в док-контейнере nginx в aws ecs ec2. Это продукт saas, и другие сторонние доменные имена будут указаны в этом внешнем док-контейнере. Я установил правило по умолчанию для этой целевой группы, но мне интересно, как настроить ssl для каждого домена. В настоящее время ALB поддерживает только 100 правил прослушивателя, т. Е. Фактически каждый слушатель будет иметь только 50 правил (с учетом 80 и 443)

30 правил уже заполнены бэкэнд-интерфейсом API.

если у меня 150 доменов, необходимо указать на этот интерфейс, как я могу установить ssl? если я установлю перенаправление 301 в порту 80 vhost nginx, например

return 301 https://$host$request_uri

, запрос снова перейдет на порт 443 балансировщика нагрузки приложения, и он примет значение по умолчанию ssl и может вызвать ошибку ssl. Есть ли шанс, что мы сможем выполнить переадресацию https nginx, не возвращаясь снова к порту 443 балансировщика нагрузки приложения? или любой другой метод? Я думаю, что многодоменный ssl-сертификат является опцией здесь, чтобы сделать его ssl по умолчанию на балансировщике нагрузки.

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Балансировщики нагрузки AWS теперь поддерживают перенаправление SSL, поэтому вам не нужно делать это на ваших контейнерах.

Кроме того, к вашему слушателю 443 может быть добавлено несколько сертификатов. Так что просто добавьте все свои сертификаты к слушателю 443 на вашем балансировщике нагрузки.

Тогда в ваших правилах 443 слушателя, просто используйте одно правило с:

  • IF: Запросы в противном случае не маршрутизируются
  • THEN:
    • HTTPS, порт 443
    • Перенаправление на «Исходный хост, путь, запрос»
    • «301 - навсегда перемещено» в качестве статуса

Теперь все ваши http-запросы будут отправлены обратно пользователю с перенаправлением обратно по HTTPS, не затрагивая ваш контейнер или nginx. Когда они возвращаются как HTTPS, у AWS ALB есть все сертификаты для этого.

Если вы столкнетесь с ограничениями на балансировщике нагрузки, вам, возможно, придется разделить их на 2 или 3 ALB, ноМне легче управлять этим, особенно когда приходит время смены сертификата.

0 голосов
/ 25 октября 2019

У вас есть доступ к SSL-сертификатам для всех этих доменов? Если да, вы можете настроить их в контейнере nginx. Используйте балансировщик сетевой нагрузки вместо ALB и добавьте прослушиватель TCP на порт 443, который не будет прерывать SSL и перенаправлять трафик в контейнер nginx, который прекратит действие сертификата.

Вы также можете динамически перезагружать конфигурацию nginx для динамической установки сертификатов.

...