AWS Elastic Beanstalk - сертификат SSL добавлен, но по-прежнему возникает ошибка HTTPS: SSL_ERROR_BAD_CERT_DOMAIN

Я купил домен с именем 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 в субдомен:

мой субдомен

(там нельзя перейти на английский, извините)

это мой балансировщик нагрузки:

мой балансировщик нагрузки AWS

Я попытался поместить DNS-имя как A-запись в свой поддомен, но там можно было ввести только адрес IP4, поэтому я ввел его как CNAME. Я также попытался узнать IP-адрес балансировщика нагрузки, но у балансировщика нагрузки нет статического IP-адреса.

Этот подход с субдоменом и CNAME, к сожалению, не сработал, поэтому я все еще ищу решение ...

(Вот меню для настройки A-Record. Здесь вы можете вводить только IP-адреса :)

Меню A-Record на strato.de




Ответы (1)


Я знаю, что проблема существует, потому что при создании сертификата SSL я ввел studileih.de в качестве домена, для которого предназначен сертификат. Я думаю, мне нужно вместо этого создать сертификат SSL для studileih1.eu-central-1.elasticbeanstalk.com.

Вы можете создать сертификат SSL только для своего домена. Вам нужно указать субдомен studileih.de, например api.studileih.de, на балансировщике нагрузки Elastic Beanstalk, а затем прикрепить сертификат SSL к этому балансировщику нагрузки, который соответствует этому субдомену.

person Mark B    schedule 07.09.2020
comment
Уже спасибо, это решило проблему в Firefox (на компьютере). Теперь у меня есть закрытый замок рядом с URL-адресом, и когда я нажимаю на него, он говорит, что соединение безопасно. На хроме и краю вместо блокировки отображается сообщение "Не защищено", а https URL-адреса перечеркивается. - person G-Unit; 07.09.2020
comment
Но, по крайней мере, он загружает данные серверной части без необходимости больше принимать риск. Но в Opera и на мобильных устройствах (firefox и chrome) он все еще показывает мне ошибку: NET :: ERR_CERT_COMMON_NAME_INVALID Кроме того, он говорит: Этот сервер не смог доказать, что это studileih1.eu-central-1.elasticbeanstalk.com. Сертификат безопасности получен от studileih.de. (перевод с немецкого) - person G-Unit; 07.09.2020
comment
ssllabs.com/ssltest/analyze.html?d=studileih.de показывает 2 сертификата для studileih.de (первый не удалял), но оба помечены как Недействительный сертификат для доменного имени. - person G-Unit; 07.09.2020
comment
В новом добавленном сертификате я добавил и studileih.de, и api.studileih.de. api.studileih.de указывает на CNAME балансировщика нагрузки. Но домен studileih1.eu-central-1.elasticbeanstalk.com нигде в сертификате не отображается. Может в этом проблема? Но балансировщик нагрузки принадлежит серверу эластичного beanstalk / EC2, который находится за studileih1.eu-central-1.elasticbeanstalk.com, и я пытался добавить studileih1.eu-central-1.elasticbeanstalk.com к запросу сертификата раньше, но это всегда приводило к сбою запроса (как описано в моем сообщении). - person G-Unit; 07.09.2020
comment
Это полное сообщение об ошибке из моей версии Firefox для США: веб-сайты подтверждают свою личность с помощью сертификатов. Firefox не доверяет этому сайту, потому что он использует сертификат, недействительный для studileih1.eu-central-1.elasticbeanstalk.com. Сертификат действителен только для следующих имен: api.studileih.de, studileih.de Код ошибки: SSL_ERROR_BAD_CERT_DOMAIN - person G-Unit; 07.09.2020
comment
Он отображается как действительный для меня в Chrome. Я думаю, вам нужно подождать, пока очистится кеш или что-то в этом роде. - person Mark B; 07.09.2020
comment
Вы, должно быть, добавили исключение для этого сайта. Я пробовал на другом ноутбуке, и там он тоже не работает. Если вы перейдете на studileih1.eu-central-1.elasticbeanstalk.com/products вы можете удалить исключение для этого сайта (по крайней мере, в firefox). В Chrome мне пришлось удалить файлы cookie и историю браузера, после чего это снова не сработало. - person G-Unit; 09.09.2020
comment
Если у вас есть время и вы все еще готовы помочь, ознакомьтесь с обновлением, которое я написал в конце исходного вопроса. Если нет, все равно спасибо;) - person G-Unit; 09.09.2020
comment
Это никогда не сработает, если вы откроете в браузере studileih1.eu-central-1.elasticbeanstalk.com/products, потому что это не доменное имя в сертификате SSL. Вы должны указать запись CNAME в среду Elastic Beanstalk, а затем использовать ее в браузере. - person Mark B; 09.09.2020
comment
Ах, хорошо, ты прав! api.studileih.de/products работает, даже когда я удаляю исключение в своем браузере. Но studileih.de по-прежнему не работает. Для уточнения: studileih.de перенаправляет на мой внешний интерфейс firebase studileih-ceb70.web.app и дополнительно имеет субдомен api.studileih.de, CNAME которого указывает на мой балансировщик нагрузки, который перенаправляет в мою среду Beanstalk, в которой работает мое внутреннее приложение (studileih1.eu-central-1.elasticbeanstalk.com/products). Так должно быть? - person G-Unit; 09.09.2020
comment
Блин, теперь я понял, мой интерфейс должен действительно вызывать api.studileih.de/products внутри код вместо studileih1.eu-central-1.elasticbeanstalk.com/products. - person G-Unit; 09.09.2020