Какой самый простой способ для сервера в экземпляре ec2 вернуть трафик https? - PullRequest
0 голосов
/ 09 ноября 2019

У меня приложение Springboot, запущенное в экземпляре EC2 (ubuntu-bionic-18.04-amd64). При запуске программа возвращает ответы JSON на порт 8080 по умолчанию. URL выглядит как http://ec2-3-17-69-122.us-east-2.compute.amazonaws.com:8080/users/rayyanshaji/todos/.

. Мне нужно выполнить https вместо http, чтобы мой интерфейс пользователя принимал входящий трафик https.

То, что я пробовал до сих пор: получил свое собственное доменное имя из AWS Route 53, получил сертификат с помощью ACM (Amazon Certificate Manager) и использовал его для создания входящего прослушивателя HTTPS 443 в Elastic Load Balancer. Добавлены группы безопасности, которые разрешают входящий трафик как на порт 80, так и на порт 443.

Я знаю, что описанные выше шаги не сработают, так как это то, что я получаю при запуске netstat -tulpn command

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
udp        0      0 127.0.0.53:53           0.0.0.0:*                           -
udp        0      0 172.31.39.227:68        0.0.0.0:*                           -

Похоже, мой сервер не настроен ни на принятие запросов https, ни на выдачу ответов https.

Я сейчас застрял здесь, так как я не эксперт по Linux. Я только начал изучать развертывание на экземплярах EC2. Я много искал решения, но редко мог найти что-нибудь на Java.

Мне действительно нужно исправить это препятствие, чтобы я мог возобновить разработку своего проекта. Любой совет будет по достоинству оценен. Заранее спасибо.

1 Ответ

1 голос
/ 09 ноября 2019

Вы находитесь на правильном пути, и вполне понятно, что вы можете настроить балансировщик нагрузки с помощью прослушивателя HTTP и сертификата ACM.

Сначала я должен сказать вам, что ваш фактический экземпляр ec2 не должен говорить по HTTPS. как это будет обрабатываться балансировщиком нагрузки. Балансировщик нагрузки будет действовать как терминатор SSL для всех входящих соединений. Таким образом, все рукопожатие SSL будет между клиентами и балансировщиком нагрузки. В нисходящем направлении от балансировщика нагрузки он может общаться с вашим экземпляром ec2 только через порт http, что означает, что, если запрос поступает через порт HTTP / HTTPs на балансировщике нагрузки, он может перенаправлять ваш экземпляр EC2 только через порт HTTP.

Так что просто настройте целевые группы балансировщика нагрузки так, чтобы они принимали входные запросы через другой порт HTTP / HTTPs и пересылали в ваш экземпляр EC2 через один порт HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...