Гид по технологиям

Как добавить бесплатный SSL через AWS Certificate Manager и настроить Load Balancer

10 min read DevOps Обновлено 27 Nov 2025
Бесплатный SSL через AWS Certificate Manager
Бесплатный SSL через AWS Certificate Manager

Быстрые ссылки

  • Что такое SSL сертификат
  • Как создать SSL сертификат в AWS Certificate Manager (ACM)
  • Настройка Load Balancer с сертификатом
  • Проверка и устранение проблем

Обложка: схема HTTPS через AWS Load Balancer и сертификат ACM

Что такое SSL сертификат

SSL (Secure Sockets Layer) — метод шифрования для HTTPS, который защищает данные между браузером пользователя и сервером. Коротко:

  • SSL обеспечивает шифрование и предотвращает перехват (MITM).
  • Сертификат выпускает доверенный центр сертификации (CA), подтверждая владение доменом.
  • В браузере зашифрованный сайт показывает значок замка в адресной строке.

Определение в одну строку: SSL сертификат — это цифровой документ, подтверждающий соответствие публичного ключа домену и обеспечивающий шифрование HTTPS.

Важно: SSL и TLS в повседневном использовании часто упоминаются вместе. TLS — современная версия протокола; термин «SSL» остался в обиходе.

Зачем использовать AWS Certificate Manager (ACM)

Преимущества ACM для ресурсов AWS:

  • Бесплатные публичные сертификаты для использования с поддерживаемыми сервисами (Load Balancer, CloudFront, API Gateway и т.д.).
  • Автоматическое продление сертификатов, когда используется DNS-валидация и сертификат привязан к ресурсам AWS.
  • Централизованное управление сертификатами без необходимости хранить приватные ключи вручную.

Ограничения:

  • Нельзя скачать приватный ключ сертификата ACM для использования вне AWS-сервисов.
  • ACM-сертификаты работают только с интегрированными AWS-сервисами.

Альтернатива: LetsEncrypt — бесплатный CA, позволяющий скачать и установить сертификаты прямо на ваши EC2/VM/контейнеры. Это полезно, если вы не хотите или не можете использовать Load Balancer или другие сервисы AWS.

Набросок решения и варианты

  • Быстро и интегрировано в AWS: ACM + Application Load Balancer.
  • Минимальные затраты на сертификат (0 USD), но балансировщик — платный (ставки AWS применяются).
  • Если вы хотите полностью бесплатное решение без балансировщика: LetsEncrypt на инстансах (требует автоматизации обновления).

Создание нового SSL сертификата в AWS Certificate Manager

Требования перед началом:

  • Доступ к AWS Management Console с правами на ACM и EC2/ELB.
  • Доступ к настройкам DNS вашего домена (или контроль над почтой домена для Email-валидации).
  • Рабочий веб‑сервер за EC2 (он будет получать трафик от Load Balancer).

Шаги:

  1. Откройте консоль EC2, выберите «Services» и в поиске найдите “certificate”. Откройте Certificate Manager.

Экран AWS Certificate Manager: начало запроса сертификата

  1. Нажмите “Get Started” в разделе Provision Certificates (Получить сертификат).

Кнопка Get Started в ACM

  1. Выберите тип сертификата — Public (публичный), так как сертификат будет использоваться для сайтов, доступных из интернета. Нажмите “Request”.

Выбор типа сертификата: Public

  1. Добавьте домены. Рекомендуется включить wildcard, если у вас есть субдомены:
"*.yourdomain.com"

Добавьте все нужные домены и нажмите “Next”.

Добавление доменных имён в ACM

  1. Выберите метод валидации: DNS или Email.
  • DNS: добавляете CNAME у поставщика DNS. Подходит для автоматического управления и продления. Если DNS у вас в Route 53, процесс автоматизируется.
  • Email: AWS отправит письмо на WHOIS и стандартные адреса (admin@, administrator@, webmaster@ и т.п.). Быстро, но требует доступа к этим почтовым ящикам.

Если выбираете DNS, скопируйте поля Name и Value из выпадающего списка для каждой записи.

Инструкция по добавлению CNAME для валидации

  1. В настройках DNS у вашего регистратора или провайдера DNS добавьте новый CNAME с полученными значениями. Интерфейс у всех провайдеров разный, но общая логика одна — создать CNAME запись.

Добавление CNAME в панели DNS

Примечание: распространение DNS может занять от нескольких минут до нескольких часов. ACM может валидировать запись за несколько минут, но в редких случаях требуется больше времени.

  1. После успешной валидации статус сертификата в ACM изменится с “Pending validation” на “Issued” (Выдан).

Важно: скачивать сертификат из ACM нельзя — он применяется напрямую внутри AWS-сервисов.

Настройка Load Balancer с новым сертификатом

Контекст: мы настроим Application Load Balancer (ALB), который будет принимать входящий HTTPS на 443 и перенаправлять трафик на ваши EC2-инстансы.

  1. В консоли EC2 в меню слева выберите “Load Balancers” и нажмите “Create Load Balancer”.

Страница создания Load Balancer

  1. Выберите тип — Application Load Balancer (балансирует HTTP/HTTPS).

Выбор типа Application Load Balancer

  1. Дайте балансировщику имя. В разделе listeners добавьте HTTPS listener на порт 443 (он обычно по умолчанию). Можно оставить HTTP 80, но целесообразно перенаправлять 80 на 443.

Настройка имени и listener

  1. На шаге Configure Security Settings выберите “Choose a certificate from ACM” и укажите созданный сертификат из выпадающего списка. Если сертификат не виден, обновите список.

Выбор сертификата из ACM для listener

  1. Configure Security Groups: создайте новую security group или используйте существующую. Откройте порты 443 (HTTPS) и при необходимости 80 (HTTP). По умолчанию эти правила подходят для веб‑серверов.

  2. Configure Routing: создайте Target Group. Внутреннее имя — любое удобное. Укажите протокол для проверки здоровья и трафика. Рекомендуется HTTPS как протокол между ALB и target group, если ваши инстансы слушают 443 и имеют сертификаты либо настроено доверие (например, самоподписанный сертификат с обходом проверки). Альтернатива — использовать HTTPS на фронтенде и HTTP на внутренней сети.

Настройка Routing и target group

  1. Register Targets: добавьте приватные IP‑адреса или инстансы EC2 в target group. Убедитесь, что security group EC2 разрешает входящий трафик с IP-диапазона или security group балансировщика.

Регистрация приватных IP инстансов в target group

  1. Review и Create. Создание занимает несколько минут. Затем в списке Load Balancers скопируйте DNS-имя балансировщика — именно его вы будете указывать в записи A/ALIAS или CNAME вашей DNS-зоны.

Скопируйте DNS-имя балансировщика и обновите DNS

  1. В DNS-зоне укажите ALIAS (если используете Route 53) или CNAME на DNS-имя ALB. Если ваш домен — apex (example.com без www), используйте ALIAS/ANAME у провайдера, который это поддерживает. После обновления DNS посетители начнут попадать на ALB, а ALB будет обслуживать HTTPS через ACM.

Совет: оставьте временно открытым HTTP 80 и настройте перенаправление на HTTPS на уровне ALB (правило listener), чтобы пользователи автоматически получали защищённое соединение.

Когда такой подход не подходит

  • Вы хотите использовать сертификат вне AWS (на внешних серверах) — ACM не даст приватный ключ.
  • У вас нет бюджета на балансировщик и вы не хотите платить за ALB — используйте LetsEncrypt на инстансах.
  • Вы используете нестандартную инфраструктуру или самодельный прокси, куда нельзя подключить ACM напрямую.

Альтернативные подходы

  • LetsEncrypt + Certbot на EC2: полностью бесплатный, но требует настройки автоматического обновления (renewal) и, возможно, scripts/reload сервера.
  • Использовать CloudFront + ACM: удобно для распределения статического контента через CDN и единого сертификата для домена и поддоменов.
  • Использовать сторонний CA и загружать сертификат в Load Balancer (если требуется использовать конкретный CA).

Мини-методология: шаги для безопасного внедрения

  1. Подготовка: получите доступ к ACM и DNS.
  2. Создание: запросите сертификат в ACM и верифицируйте домен.
  3. Развертывание: создайте ALB, привяжите сертификат, настройте Target Group.
  4. Перенаправление: обновите DNS, тестируйте HTTPS.
  5. Мониторинг: добавьте health checks, проверьте логирование и метрики ALB.

Чек-лист по безопасности и совместимости

  • Сертификат выдан и в статусе Issued в ACM.
  • HTTPS listener на ALB настроен и привязан к сертификату.
  • Security group ALB разрешает вход на 443 (и 80, если нужен редирект).
  • Security group EC2 разрешает вход от ALB (по IP или security group).
  • Health check target group проходит проверки.
  • DNS указывает на DNS-имя ALB (ALIAS/ANAME для корня домена).
  • Тесты из внешней сети подтверждают валидный сертификат и шифрование.

Ролe-based чек-листы

Администратор AWS:

  • Создать/проверить IAM права для работы с ACM и EC2.
  • Запросить сертификат в ACM.
  • Проверить выдачу сертификата и права на обновление DNS в Route 53.

Инженер по сетям / DNS:

  • Добавить CNAME запись для валидации или настроить Email переадресацию.
  • Обновить A/ALIAS запись на DNS-имя ALB.
  • Проверить TTL и распространение записи.

DevOps / Разработчик:

  • Настроить target group и health checks.
  • Обеспечить, чтобы приложение обрабатывало заголовки X-Forwarded-For и X-Forwarded-Proto, если нужно.
  • Настроить перенаправление HTTP→HTTPS или HSTS, если требуется.

Устранение неполадок — частые проблемы и решения

Проблема: Сертификат в ACM в статусе “Pending validation” долгое время.

  • Проверьте, добавлены ли CNAME-записи корректно (имя и значение).
  • Убедитесь, что TTL у DNS не слишком большой и записи не кешируются старым значением.
  • Если используете внешний DNS-провайдер — проверьте синтаксис записи у провайдера.

Проблема: ALB не видит сертификат в выпадающем списке.

  • Убедитесь, что сертификат создан в том же регионе, что и ваш ALB (ACM для интеграции с ALB действителен по региону).
  • Нажмите кнопку обновления в интерфейсе ACM/ALB.

Проблема: Клиенты видят предупреждение о недоверенном сертификате.

  • Проверьте, что домен в сертификате точно соответствует URL (включая поддомены и возможный www).
  • Убедитесь, что сертификат выпущен публичным CA (ACM публичные сертификаты подпадают под доверенные цепочки).

Проблема: Неправильная работа приложений за ALB (вроде неправильных URL, редиректов).

  • Проверьте заголовки X-Forwarded-* и конфигурацию приложения (должно знать, что входящий протокол HTTPS и использовать корректный base URL).
  • Если приложение проверяет адрес клиента, применяйте X-Forwarded-For корректно.

Критерии приёмки

  • ACM показывает сертификат в статусе Issued.
  • ALB имеет listener на 443 с привязанным сертификатом.
  • Health checks целевых инстансов проходят.
  • DNS указывает на DNS-имя ALB и внешний доступ по HTTPS работает без предупреждений браузера.

Ментальные модели и эвристики

  • «Front door» модель: ALB — это публичная дверь, ACM — ключ в этой двери. Балансировщик принимает, а инстансы отдают контент.
  • «Разделение ответственности»: ACM управляет сертификатами; ALB — шифрованием на границе; EC2 — бизнес-логикой и контентом.

Decision tree для выбора метода валидации и среды

flowchart TD
  A[Нужен сертификат для AWS] --> B{Вы используете Route 53?}
  B -->|Да| C[DNS-валидация через Route 53 — автоматическое продление]
  B -->|Нет| D{Есть доступ к адресам admin@yourdomain?}
  D -->|Да| E[Email-валидация — быстро]
  D -->|Нет| F[Добавьте CNAME у вашего DNS-провайдера вручную или перенесите зону в Route 53]
  C --> G[ACM Issued]
  E --> G
  F --> G
  G --> H{Нужна интеграция за пределами AWS?}
  H -->|Да| I[Используйте LetsEncrypt или сторонний CA]
  H -->|Нет| J[Используйте ACM вместе с ALB/CloudFront]

Короткая инструкция для быстрого развёртывания (Playbook)

  1. Запросить публичный сертификат в ACM.
  2. Проверить и применить DNS CNAME или пройти Email-верификацию.
  3. Создать Application Load Balancer, добавить HTTPS listener.
  4. Привязать сертификат ACM к listener.
  5. Создать target group, зарегистрировать EC2-инстансы.
  6. Проверить health checks, обновить DNS-запись на DNS-имя ALB.

Глоссарий в одну строку

  • ACM: AWS Certificate Manager — сервис для выпуска и управления сертификатами.
  • ALB: Application Load Balancer — балансировщик уровня приложения для HTTP/HTTPS.
  • CNAME: DNS-запись, используемая для указания имени на другое доменное имя.
  • ALIAS/ANAME: специальные записи у DNS-провайдеров для указания на ресурс с динамическим IP (например, ALB).

Совместимость и примечания по регионам

  • ACM публичные сертификаты привязаны к региону — создавайте сертификат в том регионе, где создаётся ALB, если хотите выборы в UI.
  • Для CloudFront используйте регион US East (N. Virginia) для сертификатов ACM, предназначенных для CloudFront.

Безопасность и лучшие практики

  • Откройте доступ к EC2 только из security group ALB, а не из всех источников.
  • Настройте перенаправление HTTP→HTTPS и, при необходимости, HSTS с осторожностью (проверьте на тестовом домене).
  • Мониторьте метрики ALB (latency, HTTP 5xx, healthy host count) и логи доступа для анализа трафика.

Короткая версия для анонса (100–200 слов)

В этой инструкции показано, как быстро получить бесплатный публичный SSL-сертификат через AWS Certificate Manager и установить его на Application Load Balancer. Вы пройдёте шаги от запроса сертификата и его валидации (через DNS или Email) до прикрепления сертификата к HTTPS listener на ALB и регистрации EC2-инстансов в target group. После создания балансировщика обновите DNS, указав на DNS-имя ALB — и пользователи будут подключаться к вашему сайту по HTTPS с валидным сертификатом. Руководство содержит чек‑листы, рекомендации по безопасности, варианты для тех, кто не может использовать ACM, и раздел устранения неполадок.

Итог

ACM + ALB — стандартный и масштабируемый путь для быстрого и удобного включения HTTPS в AWS. Он устраняет необходимость ручного хранения ключей и упрощает продление сертификатов. Если ваша архитектура требует использования сертификатов вне AWS, рассмотрите LetsEncrypt или сторонние CA.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро