AWS SSL сертификат для Laravel на экземпляре EC2

Вопрос или проблема

У меня есть приложение на Laravel на экземпляре EC2 с Ubuntu, также у меня есть Application Load Balancer и проверенный SSL сертификат AWS. Но логически я не могу запустить Laravel без NGINX или Apache.

  • Я могу настроить SSL с помощью letsencrypt, используя cerbot, но можно ли использовать SSL внутри экземпляра EC2 вместо SSL сертификата AWS?

  • Главный вопрос: как использовать SSL сертификат AWS и почему этот сертификат существует, если всё требует Apache или NGINX, так что сертификат AWS оказывается бесполезным.

Всё работает хорошо. Load Balancer настроен через SSL сертификат, в GoDaddy я добавил два CNAME:

  1. Первый ссылается на URL Load Balancer.
  2. Второй — это данные (ключ, значение) из ACM CNAME

NGINX сервер должен быть настроен как сервер по умолчанию, без SSL ключей.

Соединение будет выглядеть так (в моей голове это выглядит так):

Вебсайт -> HTTPS -> Load Balancer -> HTTP -> EC2

Сертификаты ACM не бесполезны.

  • Они предназначены для использования в управляемых сервисах AWS.
  • Не всё требует Apache или NGINX, так что ACM может исключить необходимость в ручной настройке сервера для сервисов.
  • У них гораздо более длительный срок действия — до 13 месяцев по сравнению с 3 месяцами для Let’s encrypt и имеется встроенный процесс продления.
  • А публичный сертификат ACM бесплатный, так что просто используйте его.

Ответ или решение

Использование SSL-сертификата AWS в приложении Laravel на EC2

В вашей инфраструктуре уже настроено использование SSL-сертификата AWS, и это хороший выбор. В данной статье подробно рассмотрим, как интегрировать SSL-сертификат AWS с приложением Laravel, размещенным на EC2 с использованием Elastic Load Balancer (ELB).

Обзор

Вы правильно понимаете, что SSL-сертификаты важны для обеспечения безопасного соединения между клиентами и вашим приложением. AWS предлагает автоматизированный процесс управления сертификатами через AWS Certificate Manager (ACM), что делает его экономически эффективным решением.

Основные аспекты

  1. Структура подключения:

    Website -> HTTPS -> Load Balancer -> HTTP -> EC2

    Данный поток правильно отражает, как сертификат работает в вашей архитектуре. Допустим, вы хотите, чтобы соединение с клиентом было защищённым с момента взаимодействия, и для этого вы используете HTTPS на уровне балансировщика нагрузки, переводя трафик на ваш EC2 через HTTP. Это позволяет разгрузить ваш сервер от затрат на обработку HTTPS-запросов.

  2. Настройка сертификата SSL:
    Если у вас уже настроен Load Balancer с привязкой к SSL-сертификату ACM, дальнейших действий на уровне EC2, таких как установка SSL-сертификатов для NGINX или Apache, не требуется. Сертификаты ACM работают на уровне Load Balancer, и, таким образом, вам не нужно выполнять дополнительные шаги для установки сертификатов внутри EC2.

  3. Недостатки использования Let’s Encrypt с Certbot:
    Хотя Let’s Encrypt является популярным решением для установки SSL-сертификатов, подход с ACM имеет несколько преимуществ:

    • Автоматическое обновление: ACM предоставляет автоматическое обновление сертификатов, что устраняет необходимость в ручном управлении.
    • Долгий срок действия: Сертификаты ACM могут действовать вплоть до 13 месяцев, тогда как сертификаты Let’s Encrypt имеют срок действия 3 месяца.
    • Стоимость: ACM предоставляет бесплатные сертификаты.

Заключение

Подводя итог, сертификаты ACM не являются бесполезными; они идеально интегрируются с другими управляемыми сервисами AWS и минимизируют необходимость в конфигурации на уровне приложения. Выбор использования SSL-сертификата AWS в вашем случае не только упростит управление, но и обеспечит безопасность вашего приложения Laravel, размещенного на EC2.

Если у вас возникли дополнительные вопросы или требуется более детальная информация по какому-либо аспекту, пожалуйста, дайте знать.

Оцените материал
Добавить комментарий

Капча загружается...