Если мне необходимо предоставить клиентам индивидуальные SSL-сертификаты, могу ли я использовать Elastic beanstalk?

Если мне необходимо предоставить клиентам индивидуальные SSL-сертификаты, могу ли я использовать Elastic beanstalk?

Для SaaS-приложения, в котором клиенты могут использовать свои собственные доменные имена, я буду использовать Let's Encrypt для генерации сертификатов для доменов клиентов.

В настоящее время я использую эластичный бобовый стебель (который использует ELB).

Могу ли я продолжать использовать Beanstalk?

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

Есть ли какие-то обходные пути, которые стоило бы предпринять?

клиент -> экземпляр ec2, на котором запущен haproxy -> ELB -> Beanstalk

SSL будет завершен на моем экземпляре ec2, на котором запущен haproxy.

решение1

Здесь у вас есть несколько вариантов:

  1. Идите по указанному вами пути, завершайте SSL на кластере экземпляров HAProxy, прежде чем перенаправлять трафик через ELB на ваши экземпляры.
  2. Превратите свой ELB в TCP-пересылатель, что сделает ELB тупым перетасовщиком пакетов. Здесь вы потеряете некоторые преимущества ELB, но это будет работать. Вы будете завершать SSL на экземплярах, которые размещают ваше приложение в этом сценарии, поэтому в конфигурации балансировки нагрузки вам понадобятся копии сертификата на всех ваших экземплярах. Это может быть довольно сложно организовать, но осуществимо.
  3. (и мой предпочтительный вариант) используйте ALB. ALB поддерживают несколько сертификатов SSL и автоматически выбирают правильный сертификат, когда клиент указывает заголовок SNI. Вы сможете загрузить требуемые части сертификата (ключ, сертификат, посредник) в IAM и выбрать их в вашем ALB, все через API.

У ALB есть много других преимуществ, помимо SNI. Они поддерживают HTTP/2, маршрутизацию на основе пути к нескольким целевым группам (полезно в некоторых сценариях), и, насколько мне известно, они дешевле классических ELB.

И да, Elastic Beanstalk ПОДДЕРЖИВАЕТ ALB. К сожалению, вы можете а) выбрать его использование только во время создания среды, и б) сделать это только через новый пользовательский интерфейс. Я опубликовал нескольконареканияо UI и EB в целом, так как я действительно начал использовать его в течение последних нескольких недель. Надеюсь, они исправят эти проблемы в будущем. В то же время, вы должны, по крайней мере, иметь возможность сохранить конфигурацию вашей текущей среды, запустить новую из сохраненной конфигурации (изменяя тип балансировщика нагрузки перед созданием), а затем переключить CNAME, когда она будет запущена и запущена.

Также обратите внимание: для использования ALB ваша среда должна быть настроена на использование VPC.

Связанный контент