Как объединить AWS API Gateway и Application Load Balancer для HTTPS за пределами us-east-1?

Я пытаюсь направить трафик через AWS API Gateway в мои контейнеры ECS, работающие в частной подсети, через Application Load Balancer, работающий в общедоступной подсети. Используя простой старый HTTP, все работает отлично, но теперь я хочу добавить безопасность транспортного уровня (TLS, fka SSL) для связи между шлюзом и балансировщиком нагрузки. Другими словами, отключите SSL на балансировщике нагрузки.

  • У меня настроено собственное доменное имя, и я работаю на моем шлюзе, который уже выставлял конечную точку HTTPS.
  • У меня настроен прослушиватель HTTPS на моем балансировщике нагрузки, который ругает меня за хитрый сертификат, но если я проигнорирую предупреждение, когда я нажимаю его напрямую, я правильно перенаправляюсь на мою службу. Таким образом, маршрутизация балансировщика нагрузки верна.
  • Когда я пытаюсь указать шлюз на балансировщик, он ломается. Кроме того, похоже, что я могу использовать сертификаты только для пользовательских доменных имен, которые находятся в регионе us-east-1. В настоящее время они не работают со следующей ошибкой в ​​CloudWatch (подробности скрыты в целях конфиденциальности).

Выполнение не удалось из-за ошибки конфигурации: имя хоста 'XXXXXXXXX-lb-XXXXXXXXX..elb.amazonaws.com' не соответствует теме сертификата, предоставленной партнером (CN =)

Учитывая, что мой балансировщик нагрузки не в регионе us-east-1, как я могу достичь своей цели?


person Mark    schedule 05.06.2017    source источник
comment
Кроме того, похоже, что я могу использовать сертификаты только для пользовательских доменных имен, которые находятся в регионе us-east-1. Я думаю, вы путаете два ограничения. Для вашего балансировщика вам понадобится сертификат в районе балансировщика. Для API-GW вам, вероятно, понадобится сертификат от us-east-1 из-за зависимости API-GW от CloudFront, который взаимодействует только с ACM в us-east-1. Вы не можете использовать хитрые сертификаты за API-GW по замыслу.   -  person Michael - sqlbot    schedule 06.06.2017


Ответы (1)


Назначьте индивидуальное доменное имя для балансировщика нагрузки. Затем назначьте действующий сертификат SSL для балансировщика нагрузки с помощью службы ACM. Затем создайте ссылку на балансировщик нагрузки, используя имя личного домена.

person Mark B    schedule 05.06.2017
comment
Идеально! Готово и работает. Наконец нашел следующую документацию AWS, которая тоже помогла: docs.aws.amazon.com/elasticloadbalancing/latest/classic/. Спасибо еще раз! - person Mark; 06.06.2017
comment
Привет! Подскажите, как интегрировать API-шлюз с балансировщиком нагрузки приложений? Я интегрировал ECS с ALB, теперь я хочу добавить шлюз API впереди без лямбды. вот и я запутался, как подключить API-шлюз к ALB .. - person Mihir Shah; 10.01.2019
comment
@MihirShah задайте здесь отдельный вопрос вместо того, чтобы отмечать существующий вопрос. - person Mark B; 10.01.2019
comment
Это сработало! Сохраняется классическим балансировщиком нагрузки, DNS A запись + псевдоним. - person Justin Tilson; 26.06.2019