Невозможно заставить HTTPS работать между CloudFront и Elastic BeanStalk - PullRequest
1 голос
/ 27 сентября 2019

Я пытаюсь настроить HTTPS для моего приложения, которое состоит из внешнего интерфейса (корзины S3, поставляемой с CloudFront) и внутреннего интерфейса (приложение node.js внутри Elastic Beanstalk).

Для части CloudFront ясоздал сертификат SSL в Северной Вирджинии (видимо, у меня нет выбора здесь), и я сделал привязку в дистрибутиве CloudFront.Это работает, и мое приложение обслуживается по HTTPS.

Для части Elastic Beanstalk я создал сертификат SSL в Ирландии (где размещено мое приложение EBS) и привязал этот сертификат к балансировщику нагрузки EBS, используя порт443. Это работает, и я могу связаться с моим сервером по протоколу HTTPS с помощью Postman.

Однако, когда мой веб-интерфейс пытается выполнить API-вызов к бэкэнду, я получаю эту ошибку: enter image description here

Полагаю, я допустил ошибку при создании сертификатов, но не могу ее найти.Я дал обоим сертификатам один и тот же набор CNAMES, я не уверен, должен ли я это делать.

РЕДАКТИРОВАТЬ:

Я получаю точно такую ​​же ошибку после обновлениявнешний интерфейс, так что он указывает DName балансировщика нагрузки (также сопоставленного с поддоменом с помощью маршрута 53).

enter image description here

1 Ответ

2 голосов
/ 27 сентября 2019

CloudFront пытается загрузить HTTPS URL из вашего балансировщика нагрузки.Я предполагаю, что у вас есть сертификат SSL, назначенный для балансировщика нагрузки.Доменное имя SSL-сертификата на балансировщике нагрузки должно соответствовать доменному имени, которое запрашивает CloudFront.

Например, если SSL-сертификат балансировщика нагрузки похож на beanstalk.mydomain.com, то CloudFront необходимо будет отправлять запросы на https://beanstalk.mydomain.com.Ошибка CloudFront дает вам сообщение о том, что доменное имя SSL-сертификата, обслуживаемого балансировщиком нагрузки, не соответствует доменному имени djumbo-back-debug.eu-west-1.elasticbeanstalk.co.

. Необходимо настроить что-то вроде следующего:

  • DNS-имя www.mydomain.com указывает на распределение CloudFront

    • Настроен для обслуживания www.mydomain.com
    • Настроен с SSL-сертификатом для домена www.mydomain.com
    • Настройка извлечения из источника beanstalk.mydomain.com
  • DNS-имя beanstalk.mydomain.com указывает на приложение Elastic Beanstalk

    • с загрузкойБалансировщик, с сертификатом SSL на beanstalk.mydomain.com
...