Как правильно настроить HTTPS на AWS EC2? - PullRequest
0 голосов
/ 29 апреля 2020

?

У меня возникают проблемы при попытке запустить мой API, размещенный на AWS EC2, по протоколу HTTPS.

API работает нормально без однако при настройке ELB (после выполнения рекомендуемых шагов) я получаю сообщение 502 Bad Gateway .

Вот моя конфигурация:

  • AWS EC2 (t3a.small) с контейнером docker моего приложения ExpressJS, прослушивающего порт 3000;
  • Группа безопасности с открытыми http:80 и https:443;
  • ACM, охватывающий следующие домены (mydomain.com, * .mydomain.com);
  • ELB прослушивания портов: http:80, https:443, https:3000;
  • Маршрут 53 с моей размещенной зоной, содержащей запись A-типа со значением DNS ELB;

Ранее URL

http://ec2-ip-address.zone.compute.amazonaws.com:3000/api/

Сейчас

https://api.mydomain.com:443/api/{resourceName}

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

1 Ответ

0 голосов
/ 01 мая 2020

Итак, с помощью @Marcin (см. Комментарии к моему вопросу) и других (форум Reddit) я смог заставить его работать должным образом.

Проблема заключалась в том, что ELB не смог для связи с моим экземпляром EC2 через порт 3000, так как этот порт не был настроен в моей группе безопасности.

Вам необходимо создать ALB (Application Load Balancer) и SG с HTTP:80 и HTTPS:443 затем выберите свой экземпляр и настройте его для связи с ним через порт 3000 (или любой другой порт, на котором работает EC2).

У вас должно быть две группы безопасности, одна назначена экземпляру EC2, а другая назначена ELB. Группа безопасности EC2 должна разрешать доступ из ELB sg через порт 3000. ELB sg должна разрешать всемирный доступ через порты 80 и 443. ELB не должен прослушивать порт 3000 (в направлении мира), но должен иметь внутренний порт, настроенный на 3000. Если все работает, вы должны увидеть свой экземпляр EC2 как работоспособный в консоли ELB.

Кроме того, при проверке работоспособности не забудьте настроить его на прослушивание конечной точки, которая фактически возвращает что-то вроде кода состояния 200 OK, в противном случае AWS ELB будет предполагать, что он не связан с экземпляром EC2.

...