У меня есть монолитное приложение JHipster (Angular + Java SpringBoot + контейнер Tomcat, все вместе), успешно развернутое в EC2.Я мог бы установить группы безопасности, чтобы разрешить 8443 входящих запросов к общедоступной DNS, и я могу получить к нему доступ из любого браузера.
После этого я запросил публичный сертификат от Amazon для домена, который яуже приобрел с Route53.
Таким образом, идея состояла в том, чтобы использовать 443 вместо 8443 и реальный домен (вместо публичного DNS, предоставленного AWS), поэтому я фактически создал ELB (все в одном VPC, группе безопасности иразмещенная зона).Этот ELB прослушивает в 443 и перенаправляет на 8443. Действие по умолчанию.
Но .. ERR_CONNECTION_REFUSED - это то, что показывает браузер ..
Важно отметить, что, поскольку AWS не позволяетчтобы загрузить сертификат (по крайней мере, я не вижу никакой опции для этого в консоли) в JDK EC2, где запускается приложение, я установил специальный сертификат (сгенерированный с помощью keytools), чтобы применить его в Tomcatдля прослушивания уже упомянутого порта 8443.
Я также попытался запустить 8080 вместо 8443 (и, конечно, обновить группы безопасности), но без изменений ..
Не могли бы вы дать мне подсказку о том, что мне не хватает?Пока что я вижу единственный способ создать новый EC2 с NGINX, который будет действовать в качестве обратного прокси-сервера (возможно, с политикой перезаписи) за ELB, но я предпочитаю избегать дополнительной сложности, если в этом нет крайней необходимости.Дополнительные данные:
- Конфигурация сервера Tomcat:
server:
port: 8443
server.ssl.key-store: keystore.p12
server.ssl.key-store-password: thePassword
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: theKeyAlias
- Правила входящей группы безопасности:
Custom TCP 8443 with 172.31.0.0/16 (the same range of the ELB)
HTTPS TCP 443 with 0.0.0.0/0 and ::/0
- Также сертификат AWS включен и уже выдан (набор записей CNAME создан в Route53)
** ОБНОВЛЕНИЕ 1 - 04 февраля 2019 22:21 (GMT-3) **
Ребята, я наконец решил иметь NGINX за ELB.Также я понял, что связь между NGINX и сервером приложений может быть HTTP, поэтому мое приложение будет прослушивать порт 8080, что немного упростит схему.Я также понял, что мне нужен только один сертификат для того, чтобы иметь «замок браузера» и зашифровать весь трафик между клиентами и ELB, поэтому независимо от того, если его невозможно загрузить (его также не нужно устанавливать в NGINXни сервер приложений).