Размещение страницы React на S3 и выполнение вызовов API REST на сервер на Elasti c Beanstalk - PullRequest
0 голосов
/ 11 июля 2020

Фон

Я пытаюсь развернуть фиктивное приложение с интерфейсом React и Django сервером, взаимодействующим через REST api. Я сделал следующее:

  • Использовать корзину S3 для размещения веб-сайта stati c и развернуть на нем мой код реакции
  • Поместить Cloudfront для корзины S3 - настроить сертификат и изменить мое доменное имя (от GoDaddy) для ссылки на этот адрес
  • Отключено Elasti c Среда Beanstalk, следуя руководству по среде python из AWS
  • Настройте Postgres RDS и связал с ним сервер Django

Итак, теперь я могу сделать следующее:

  • Доступ к моему интерфейсу с помощью https через мое доменное имя (https://www.example.com)
  • Доступ к django сайту администратора с использованием пути elasti c beanstalk и элементов обновления

т.е. каждый компонент запущен и работает

Проблема

У меня проблема с:

  • Выполнение безопасного вызова REST API со страницы stati c в среду Elasti c Beanstalk. Прежде чем я установил сертификаты, я мог легко выполнять вызовы REST API.
  • Руководства, которые я могу найти, обычно включают указание доменного имени для Elasti c Beanstalk, которое, как мне кажется, не применимо к моему случаю (или действительно ?)
  • Я пытался следовать этому faq и обновил конфигурацию в балансировщике нагрузки, который принимает 443 https и перенаправляет на 80 http. Но я использую тот же сертификат, что и CloudFront, что мне не подходит.

Буду признателен за помощь с

  • как решить указанную выше проблему с ssl-соединением
  • или есть лучшая архитектура для того, что я пытаюсь достичь здесь?

Согласно Запросить сертификат в ACM для Elasti c Backend Beanstalk , Похоже, мне нужно использовать поддомен и запросить сертификат для этого поддомена, а также использовать Cloud 53 для направления запросов на этот поддомен в среду Elasti c Beanstalk. Так ли это?

Заранее спасибо!

1 Ответ

0 голосов
/ 11 июля 2020

По умолчанию EB url будет только HTTP. Чтобы использовать HTTPS, вам необходимо развернуть сертификат SSL на вашем ALB .

Для этого вам понадобится собственный домен , потому что вы можете связать только сертификаты SSL с доменами , которые вы контролируете . Таким образом, обычно вы получаете домен (кажется, у вас уже есть один год назад). Итак, в этом случае вы можете настроить поддомен (например, api.my-domian.com) на годады. Затем вы можете использовать AWS ACM для регистрации бесплатного SSL-сертификата publi c для api.my-domian.com.

После проверки сертификата с помощью DNS (проще) или электронной почты вы развертываете его на своем ALB использует прослушиватель HTTP. Очевидно, вам нужно будет указать api.my-domian.com на https-адрес EB. Вы также можете перенаправить на вашем HTTP-трафике ALB c с порта 80 на 443, чтобы всегда использовать https.

Тогда в вашем интерфейсном приложении вы используете только https://api.my-domian.com, а не исходный URL-адрес EB.

Наряду с этим могут быть проблемы с CORS, поэтому их также необходимо варьировать.

...