API-шлюз, вызывающий мою среду elastic beanstalk с использованием HTTPS

#amazon-web-services #ssl #https #ssl-certificate #amazon-elastic-beanstalk

#amazon-веб-сервисы #ssl #https #ssl-сертификат #amazon-elastic-beanstalk

Вопрос:

Я пытаюсь выяснить, как я могу вызвать свою среду elastic beanstalk с помощью HTTPS. В конечном счете я хочу иметь возможность использовать API gateway для пересылки на него запросов HTTPS *.

В консоли elastic beanstalk я настроил балансировщик нагрузки на использование SSL-сертификата моего веб-сайта (mywebsite.com ), на порту 443 и с портом экземпляра 80 (что бы это ни значило — я следил https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html ).

Перед подключением API gateway я сначала попытался вызвать конечную точку elastic beanstalk. Переход http:// на https:// , используя postman, который я получил

Ошибка: имя хоста / IP не соответствует именам сертификатов: Host: myService-prod.eba-p3t3saxf.ap-southeast-1.elasticbeanstalk.com . отсутствует в именах идентификаторов сертификата: DNS:*.mywebsite.com

Нет кубиков. Затем я подумал, что, возможно, если запрос исходит из домена моего веб-сайта, это может сработать. Итак, я попытался настроить API gateway, но я просто возвращаю внутреннюю ошибку сервера 500. (обратите внимание, если я изменю endpoint URL внутренний API-шлюз с https на http all is good).

Итак, что мне нужно сделать? Я попытался прочитать это https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html , но добрался только до того, что я описал выше. Я чувствую, что мне действительно нужен сертификат, но когда я попытался использовать диспетчер сертификатов Amazon для создания сертификата для myService-prod.eba-p3t3saxf.ap-southeast-1.elasticbeanstalk.com , я не могу его проверить (не проходит сертификацию как электронной почты, так и DNS). Я думаю, что я не совсем понимаю, что мне нужно делать / видеть большие картинки. Может ли кто-нибудь мне помочь, в идеале с конкретными инструкциями.

* На самом деле, это вопрос сам по себе. Если конечная точка моего API-шлюза — HTTPS, безопасно ли для API gateway вызывать мою среду elastic beanstalk только через HTTP, поскольку мы уже внутри AWS?

Спасибо

Ответ №1:

Я попытался использовать диспетчер сертификатов Amazon для создания сертификата для myService-prod.eba-p3t3saxf.ap-southeast-1.elasticbeanstalk.com

Вы не можете сгенерировать SSL-сертификат для этого домена. Это домен, принадлежащий AWS и управляемый. Чтобы получить правильный действительный SSL-сертификат, у вас должен быть свой собственный домен, который вы контролируете.

Из вашего сообщения неясно, действительно ли у вас есть домен mywebsite.com или нет. Если нет, и вы хотите оставаться в AWS, вы можете использовать Route53 для покупки нужного вам домена. Но любой поставщик домена будет в порядке. Если у вас есть свой собственный пользовательский домен, вы можете настроить для него размещенную зону в R53 и указать ее на балансировщик нагрузки вашего EB.

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

В вашем API-шлюзе вы должны использовать свой домен EB для HTTP-интеграции, а не домен AWS EB по умолчанию.

Комментарии:

1. да, у меня есть домен, который я купил через route53. что мне нужно сделать на панели размещенных зон? что мне создать. CNAME? Можете ли вы дать мне конкретные шаги?

2. Я думаю, что, возможно, я уже сделал то, что вы описали. У меня был ACM, выдавший сертификат для *.mywebsite.com а затем я подключил это к балансировщику нагрузки через консоль (шаги, описанные в моем оригинальном посте).

3. @Prof Я связал настройки в ответе. Вам нужен псевдоним записи. Итак, работает ли ваш пользовательский домен в https?

4. Хорошо, все еще немного запутался. У меня уже есть псевдоним, запись для api.mywebsite.com который указывает на URL-адрес cloudfront (я настроил это несколько недель назад, не могу вспомнить, что сейчас, но был вокруг API gateway) Что вы подразумеваете под «работает ли ваш пользовательский домен в https». Я могу перейти к mywebsite.com и прекрасно просматривайте мой веб-сайт.

5. @Prof Итак, вы хотите использовать API gateway -> CloudFront или API gateway -> EB? Потому что ваш вопрос предполагает, что вы хотите последнее. Если это так, у вас должен быть настроен HTTPs на EB, а не на cloudfront.