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

Что такое 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).
Шаги:
- Откройте консоль EC2, выберите «Services» и в поиске найдите “certificate”. Откройте Certificate Manager.

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

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

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

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

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

Примечание: распространение DNS может занять от нескольких минут до нескольких часов. ACM может валидировать запись за несколько минут, но в редких случаях требуется больше времени.
- После успешной валидации статус сертификата в ACM изменится с “Pending validation” на “Issued” (Выдан).
Важно: скачивать сертификат из ACM нельзя — он применяется напрямую внутри AWS-сервисов.
Настройка Load Balancer с новым сертификатом
Контекст: мы настроим Application Load Balancer (ALB), который будет принимать входящий HTTPS на 443 и перенаправлять трафик на ваши EC2-инстансы.
- В консоли EC2 в меню слева выберите “Load Balancers” и нажмите “Create Load Balancer”.

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

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

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

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

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

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

- В 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).
Мини-методология: шаги для безопасного внедрения
- Подготовка: получите доступ к ACM и DNS.
- Создание: запросите сертификат в ACM и верифицируйте домен.
- Развертывание: создайте ALB, привяжите сертификат, настройте Target Group.
- Перенаправление: обновите DNS, тестируйте HTTPS.
- Мониторинг: добавьте 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)
- Запросить публичный сертификат в ACM.
- Проверить и применить DNS CNAME или пройти Email-верификацию.
- Создать Application Load Balancer, добавить HTTPS listener.
- Привязать сертификат ACM к listener.
- Создать target group, зарегистрировать EC2-инстансы.
- Проверить 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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента