Все руководства по развёртыванию Развёртывание

SSL-сертификаты на AWS (ACM, EC2, ALB, CloudFront)

AWS предлагает несколько способов добавить HTTPS в зависимости от вашей архитектуры. Правильный подход зависит от того, используете ли вы балансировщик нагрузки, CloudFront или отдельный инстанс EC2.

Дерево решений

Используете ли вы ALB, NLB или CloudFront?
├── Да → Используйте AWS Certificate Manager (ACM) — бесплатно, автообновление
└── Нет (отдельный EC2)?
    ├── Можно установить Certbot? → Certbot на EC2 (автообновление)
    └── Нет root-доступа / быстрая настройка? → GetHTTPS → ручная установка на EC2

Вариант 1: AWS Certificate Manager (ACM) — для балансировщиков нагрузки и CloudFront

ACM предоставляет бесплатные SSL-сертификаты с автоматическим обновлением. Они работают только с сервисами AWS (ALB, NLB, CloudFront, API Gateway) — скачать закрытый ключ нельзя.

Запрос сертификата

  1. Откройте AWS Certificate Manager в консоли
  2. Нажмите Request a certificateRequest a public certificate
  3. Введите ваш домен(ы): example.com, *.example.com
  4. Выберите способ валидации: DNS validation (рекомендуется) или Email
  5. Нажмите Request

DNS-валидация

ACM предоставит CNAME-запись для добавления в ваш DNS:

  • Name: _xxxx.example.com
  • Value: _yyyy.acm-validations.aws

Если ваш DNS находится в Route 53, нажмите “Create records in Route 53” — ACM добавит запись автоматически.

Привязка к ALB

  1. Перейдите в EC2 → Load Balancers → выберите ваш ALB
  2. Вкладка Listeners → Add listener (или отредактируйте существующий)
  3. Protocol: HTTPS, Port: 443
  4. Default action: Forward to your target group
  5. Default SSL/TLS certificate: выберите ваш ACM-сертификат
  6. Сохраните

Привязка к CloudFront

  1. Перейдите в CloudFront → выберите вашу дистрибуцию
  2. Вкладка GeneralEdit
  3. Custom SSL certificate: выберите ваш ACM-сертификат (должен быть в us-east-1)
  4. Сохраните

Вариант 2: Let’s Encrypt на EC2 (отдельные инстансы)

Если вы используете один инстанс EC2 без балансировщика нагрузки, установите сертификат непосредственно на сервер.

С помощью GetHTTPS (без установки ПО)

  1. Получите сертификат на GetHTTPS
  2. Загрузите файлы на ваш инстанс EC2:
    scp fullchain.pem privkey.pem ec2-user@your-ec2-ip:/etc/ssl/
  3. Настройте Nginx или Apache на инстансе

С помощью Certbot (автообновление)

# Amazon Linux 2023
sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

# Ubuntu на EC2
sudo snap install --classic certbot
sudo certbot --nginx -d example.com

Certbot автоматически настраивает автообновление.

ACM vs Let’s Encrypt на AWS

ACMLet’s Encrypt (GetHTTPS/Certbot)
СтоимостьБесплатноБесплатно
Работает с ALB/CloudFront❌ (нельзя легко импортировать LE в ACM)
Работает на EC2 напрямую
Автообновление✅ (управляется AWS)✅ (Certbot) или вручную (GetHTTPS)
Доступ к закрытому ключу❌ (хранится в AWS)✅ (у вас)
Wildcard
Использование вне AWS✅ (переносимый)

Общее правило: Используйте ACM для всего, что находится за ALB или CloudFront. Используйте Let’s Encrypt для отдельных инстансов EC2.

Настройка группы безопасности

Убедитесь, что группа безопасности вашего EC2 или ALB разрешает входящий трафик на портах 80 и 443:

Type        Protocol  Port  Source
HTTP        TCP       80    0.0.0.0/0
HTTPS       TCP       443   0.0.0.0/0

Порт 80 необходим для редиректов HTTP→HTTPS и для HTTP-01 проверок Let’s Encrypt.

Часто задаваемые вопросы

Можно ли использовать сертификаты ACM на EC2 напрямую?

Нет. Сертификаты ACM можно привязать только к управляемым сервисам AWS (ALB, NLB, CloudFront, API Gateway). Экспортировать закрытый ключ нельзя. Для отдельного EC2 используйте GetHTTPS или Certbot.

Можно ли импортировать сертификат Let’s Encrypt в ACM?

Технически да (aws acm import-certificate), но он не будет автоматически обновляться через ACM. Вам придётся повторно импортировать каждые 90 дней. Проще использовать собственные сертификаты ACM для сервисов AWS, а Let’s Encrypt — для EC2.

Какой регион AWS для сертификатов ACM?

Для ALB/NLB: запрашивайте сертификат в том же регионе, что и ваш балансировщик нагрузки. Для CloudFront: сертификат должен быть в us-east-1 (Северная Вирджиния), независимо от расположения вашего origin-сервера.

ACM действительно бесплатен?

Да. Публичные SSL/TLS-сертификаты от ACM бесплатны. Нет платы ни за сертификат, ни за обновление. Вы платите только за ресурсы AWS, которые используют сертификат (ALB, CloudFront и т. д.).

Как настроить SSL для сервиса ECS/Fargate?

Поставьте ALB перед вашим сервисом ECS и привяжите сертификат ACM к listener ALB. ALB завершает TLS и пересылает HTTP в ваши контейнеры. Это стандартный паттерн для ECS.

Как настроить SSL для статического сайта на S3?

Хостинг статических сайтов на S3 не поддерживает пользовательские SSL-сертификаты напрямую. Поставьте CloudFront перед S3 и привяжите сертификат ACM (из us-east-1) к дистрибуции CloudFront.

А что насчёт API Gateway?

AWS API Gateway включает бесплатный SSL по умолчанию на *.execute-api.region.amazonaws.com. Для пользовательского домена (например, api.example.com) создайте сертификат ACM и настройте пользовательское доменное имя в API Gateway.

Стоит ли использовать ACM или GetHTTPS на AWS?

СценарийРекомендация
ALB / NLB / CloudFrontACM — бесплатно, автообновление, нативная интеграция
Отдельный EC2GetHTTPS или Certbot — ACM не может экспортировать ключи на EC2
EC2 за ALBACM на ALB — EC2 не нужен собственный сертификат
ECS / FargateACM на ALB — стандартный паттерн
LightsailВстроенный в Lightsail — включает бесплатный Let’s Encrypt

Если вы используете чистый EC2 без балансировщика нагрузки, GetHTTPS — самый быстрый способ получить сертификат, без AWS CLI.

Похожие статьи

Начало работы 2026-05-08
Как получить бесплатный SSL-сертификат (пошаговое руководство)
Получите бесплатный SSL-сертификат от Let's Encrypt за 5 минут --- без установки программ, без создания аккаунта. Полное руководство: 4 метода, оба типа проверки, установка на 6 платформах и устранение неполадок.
Развёртывание 2026-05-08
Как установить SSL-сертификат на Nginx
Пошаговое руководство по установке SSL-сертификата на Nginx. Охватывает загрузку файлов, полную конфигурацию серверного блока, лучшие практики TLS, HTTP/2, HSTS, настройку редиректов, тестирование и устранение 6 распространённых ошибок.
Развёртывание 2026-05-08
SSL-сертификаты с Docker и обратными прокси
Настройка HTTPS для Docker-контейнеров с помощью обратного прокси Nginx, Traefik с автоматическим Let's Encrypt или ручного монтирования сертификатов.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат