#amazon-web-services #amazon-ec2 #amazon-cloudfront #aws-certificate-manager
Вопрос:
У меня есть сервер EC2, который обслуживает серверную часть, используя HTTP для интерфейса корзины S3, и это отлично работает, когда я использую адрес S3 для запуска приложения. Однако после развертывания на облачном фронте я получаю следующую ошибку:
Mixed Content: The page at 'https://d3qxpzawaycmw5.cloudfront.net/#/employees' was loaded over HTTPS, but requested an
insecure resource 'http://ec2-3-86-60-146.compute-1.amazonaws.com:3030/api/Employees?'. This request has been blocked;
the content must be served over HTTPS.
Это информирует о том, что BE должен обслуживаться с использованием HTTPS. Если я ничего не могу изменить для BE, есть ли какое-либо решение для использования Cloudfront?
Спасибо.
Комментарии:
1. Вам необходимо настроить правильный https для вашего экземпляра.
2. @Marcin Итак, установка SSL-сертификата в Ec2 не сработает, и мне нужно будет изменить кодовую базу для поддержки HTTPS?
Ответ №1:
Вам не нужно ничего менять в экземпляре, если вы этого не хотите. Самый простой способ получить HTTPS для вашего экземпляра-это подключить его с помощью балансировщика нагрузки, как описано в:
Но для этого, как и для любого другого метода, вам нужен свой собственный домен, так как для него вам нужен действительный общедоступный SSL-сертификат. Если вы используете балансировщик нагрузки, вы можете легко получить бесплатный сертификат SSL от AWS ACM.
Но если ALB для вас слишком важен, вам нужно развернуть SSL на экземпляре. Для этого по-прежнему требуется ваш собственный домен, но вы не можете использовать ACM. Вместо этого вы можете получить бесплатный SSL-сертификат от https://letsencrypt.org/.
Комментарии:
1. Спасибо за ваш ответ. Если я просто предоставлю сертификат ACM SSL/TLS экземпляру EC2, будет ли он работать? Имейте в виду, что я не хочу ничего менять в кодовой базе, и она обслуживает контент локально на основе метода HTTP, например
curl -v http://localhost:3030/api/status
. Моя главная забота-не менять кодовую базу и не оставлять ее такой, какая она есть.2. @Arefe Не нужно менять свою кодовую базу. Обычно вы добавляете nginx в экземпляр для обработки всех задач, связанных с ssl.
3. У меня нет никакого опыта работы с Nginx, есть ли какая-либо запись в блоге, на которую вы можете меня направить? Ранее я думал, что только установка сертификата в установке EC2 выполнит эту работу. Подробная работа будет полезна.
4. @Arefe Я часто использую учебные пособия DigitalOcean, они хороши по моему опыту. В зависимости от используемой вами ОС, вот один из примеров того, как защитить Nginx с помощью Let’s Encrypt в Ubuntu 20.04
5. Я использую Ubuntu, так что это работает нормально.