Я купил домен с именем studileih.de, затем развернул свой интерфейс Angular на firebase: https://studileih-ceb70.web.app/ и перенаправлен с моего домена studileih.de на URL-адрес firebase.
Затем я развернул серверную часть Spring Boot на AWS Elastic Beanstalk
на: http://studileih1.eu-central-1.elasticbeanstalk.com/
- ›Проблема: поскольку интерфейс на firebase использовал https
, а серверный интерфейс на AWS использовал http
, я получил Mixed content error
. Веб-интерфейс не смог загрузить какие-либо данные серверной части.
Поэтому я попытался решить эту проблему, создав SSL-сертификат для моей серверной части в AWS Certificate Manager (ACM) и добавляю это в мой Elasting Beanstalk Load Balancer
. Это сработало, и теперь я мог, по крайней мере, установить соединение из моего интерфейса к моему серверу.
Но теперь я получаю эту ошибку всякий раз, когда отправляется запрос к моему бэкэнду:
Когда я нажимаю «Принять риск и продолжить» один раз, он работает нормально и загружаются все данные моего сервера. Но я не могу просить своих пользователей сделать это.
(Вы можете попробовать это следующим образом: https://studileih1.eu-central-1.elasticbeanstalk.com/products и щелкнув Advanced - ›Accept the Risk and Continue (если осмелились ^^) после того, как вы это сделали, щелкните studileih.de, и теперь он загрузится с данными серверной части.)
Я знаю, что проблема существует, потому что при создании сертификата SSL я ввел studileih.de в качестве домена, для которого предназначен сертификат. Думаю, мне нужно создать сертификат SSL для studileih1.eu-central-1.elasticbeanstalk.com вместо этого. Но когда я пытаюсь создать сертификат SSL для studileih1.eu-central-1.elasticbeanstalk.com < / а>:
Я получаю эту ошибку от ACM:
Как создать сертификат SSL для URL-адреса Elastic Beanstalk?
p.s. Я также попытался выпустить сертификат для моего URL-адреса firebase https://studileih-ceb70.web.app/ но этот уже по умолчанию использует Https. Также я не мог узнать, как DNS / Email проверять запрос ACM в консоли firebase. Но я думаю, мне нужен сертификат для бэкэнда Elastic Beanstalk на сайте studileih1.eu-central-1.elasticbeanstalk.com, а не для внешнего интерфейса Firebase, верно?
p.p.s. Мне действительно не нужно использовать https
, поэтому решением было бы заставить firebase использовать http вместо https, но я не мог найти ничего о том, как это сделать.
ОБНОВЛЕНИЕ:
Я добавил поддомен под названием api.studileih.de (немедленный доступ заблокирован весенней безопасностью, так как вы не вошли на мой сайт, но вы можете проверить его с помощью api.studileih.de/products, потому что этот API доступен без входа в систему). Затем я перенаправил этот субдомен на свой AWS Load Balancer, как было предложено Марком Б, добавив CNAME в субдомен:
(там нельзя перейти на английский, извините)
это мой балансировщик нагрузки:
Я попытался поместить DNS-имя как A-запись в свой поддомен, но там можно было ввести только адрес IP4, поэтому я ввел его как CNAME. Я также попытался узнать IP-адрес балансировщика нагрузки, но у балансировщика нагрузки нет статического IP-адреса.
Этот подход с субдоменом и CNAME, к сожалению, не сработал, поэтому я все еще ищу решение ...
(Вот меню для настройки A-Record. Здесь вы можете вводить только IP-адреса :)