HTTPS для каждого экземпляра EC2 в группе автоматического масштабирования - PullRequest
0 голосов
/ 24 апреля 2019

Как настроить HTTPS для каждого отдельного экземпляра EC2 в группе автоматического масштабирования?

Обычно балансировщик нагрузки перед группой справляется с этим, имея сертификат SSL / TLS, но в моей архитектуре нет балансировщика нагрузки; вместо этого клиенты запрашивают службу каталогов, которая предоставляет им IP-адрес экземпляра (экземпляры уведомляют каталог о своем существовании через функцию pub / sub сервера redis). Следовательно, сами экземпляры EC2 должны нести сертификаты SSL / TLS. Поскольку это группа автоматического масштабирования, экземпляры могут появляться / исчезать в любое время, поэтому сертификаты нельзя назначать вручную. Я знаю, что AWS может назначать каждому экземпляру общедоступный IP-адрес по умолчанию из своего пула, а также общее имя DNS, например ec2-203-0-113-25.compute-1.amazonaws.com, но они не поставляются с сертификат.

Итак, как мне получить эти экземпляры, чтобы иметь сертификаты, если их DNS-имя по умолчанию такое же, как случайное? Я думаю, может быть, я мог бы как-то настроить их в пользовательском родительском домене и каждый экземпляр запрашивать уникальный поддомен по желанию, тем самым позволяя им использовать подстановочный сертификат, который покрывает родительский домен, но я не совсем уверен, как это сделано.

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Нельзя использовать сертификаты Amazons ACM в экземплярах EC2.Вы должны будете предоставить свой собственный сертификат.например, подстановочный сертификат, действительный для * .example.com.Затем вы назначаете субдомены своим экземплярам в Route53 и сохраняете их в своей базе данных Redis.

Я не рекомендую использовать пользовательские образы компьютеров, которые в долгосрочной перспективе приведут к огромным накладным расходам на обслуживание.

Настройте машины во время запуска с помощью сценариев запуска или более профессионально с Opsworks, где вы можете использовать возможности шеф-повара или марионетки для настройки и запуска вашего сервиса.https://aws.amazon.com/opsworks/

редактировать, разъясняя использование route53

Либо в процедуре регистрации экземпляра, либо при использовании opsworks в рецепте настройки или развертывания событий вы можете использовать AWS Route53 APIсоздать поддомен, например, имя экземпляра.Насколько мне известно, количество поддоменов не ограничено.

Подробнее о событиях opsworks https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-events.html

Подробнее о Route53 https://docs.aws.amazon.com/Route53/latest/APIReference/Welcome.html

0 голосов
/ 24 апреля 2019
  1. Вам необходимо создать пользовательский AMI для конфигурации запуска.
  2. Для этого необходимо настроить свой сертификат SSL.
  3. При каждом запуске вашего экземпляра будет появляться SSL,
  4. и какое приложение вы используете для этого, вы должны написать правило перезаписи. например, Nginx http на https перенаправление.
server {
           listen         80;
           server_name    www.example.org;
           rewrite        ^ https://$server_name$request_uri? permanent;
        }

        server {
           listen         1443;
           server_name    www.example.org;
       }
...