ACME

Материал из Энциклопедия интернет-маркетинга MarketWiki

Протокол ACME (Automated Certificate Management Environment) - это коммуникационный протокол для автоматизации взаимодействия между веб-сервером и центром сертификации (Certificate Authority, CA), позволяющий автоматически выпускать, проверять, продлевать и отзывать SSL/TLS-сертификаты без участия человека.

В интернет-маркетинге ACME является основой для массового внедрения HTTPS на сайтах, что критически важно для SEO (поисковые системы ранжируют защищённые сайты выше), доверия пользователей (браузеры маркируют сайты без HTTPS как «небезопасные») и безопасности передачи данных (формы заказа, авторизация, оплата). Благодаря ACME процесс получения и продления сертификатов стал полностью автоматизированным, бесплатным и не требующим участия системного администратора.

Протокол был разработан группой ISRG (Internet Security Research Group) специально для проекта Let's Encrypt. В 2019 году ACME был официально стандартизирован IETF как RFC 8555. К 2026 году протокол поддерживается всеми крупными центрами сертификации (Let's Encrypt, Google Trust Services, ZeroSSL, Buypass, Sectigo), а количество зашифрованных страниц в интернете выросло с примерно 40 процентов в 2014 году до более 95 процентов.

Суть

[править]

ACME - это протокол, который позволяет серверу автоматически «договориться» с центром сертификации о выдаче SSL-сертификата. Вместо того чтобы раз в год вручную покупать и продлевать сертификат, администратор один раз настраивает ACME-клиента (например, Certbot), и дальше всё происходит автоматически.

Что такое протокол ACME

[править]

ACME (Automated Certificate Management Environment) - это протокол прикладного уровня, работающий поверх HTTPS (обычно через JSON API). Он определяет набор команд и форматов данных, с помощью которых ACME-клиент (программа на веб-сервере) может выполнять следующие операции:

Функция Описание
Регистрация Создать учётную запись в центре сертификации
Проверка владения доменом Доказать CA, что сервер действительно управляет доменом
Выпуск сертификата Получить подписанный сертификат
Продление Автоматически обновить сертификат до истечения срока действия (обычно за 30 дней до)
Отзыв Аннулировать скомпрометированный сертификат

Как работает протокол ACME

[править]

Архитектура и участники

[править]
Участник Описание
ACME-клиент Программа на веб-сервере (Certbot, acme.sh, Caddy, Apache, Nginx с модулями), которая инициирует запросы и выполняет проверки
ACME-сервер Центр сертификации (Let's Encrypt, ZeroSSL, Google Trust Services), который выдаёт сертификаты после успешной проверки
Ресурс проверки Веб-сервер (HTTP-01) или DNS-сервер (DNS-01), через который CA проверяет владение доменом

Этапы работы ACME

[править]
  1. Регистрация (Account Creation) - ACME-клиент генерирует пару ключей (публичный и приватный) и регистрирует учётную запись в CA.
  2. Заказ сертификата (Order) - клиент отправляет CA список доменов, для которых нужен сертификат.
  3. Проверка владения (Authorization / Challenge) - CA предлагает клиенту выполнить задачу (challenge), доказывающую, что клиент управляет доменом.
  4. Выпуск (Issue) - после успешной проверки CA подписывает сертификат и возвращает его клиенту.
  5. Установка (Install) - ACME-клиент устанавливает сертификат в настройки веб-сервера (Nginx, Apache, Caddy).
  6. Автоматическое продление (Renewal) - клиент периодически проверяет срок действия сертификата (обычно раз в день) и запускает процедуру продления за 30 дней до истечения срока.

Способы проверки владения доменом (Challenges)

[править]

HTTP-01 (проверка файлом)

[править]

Самый популярный метод, подходит для большинства обычных сайтов.

Механика: ACME-клиент создаёт специальный файл с токеном в директории /.well-known/acme-challenge/ на веб-сервере. Центр сертификации пытается скачать этот файл через обычный интернет по порту 80.

Плюсы Минусы
Простота настройки Требует открытого порта 80
Скорость проверки (мгновенно) Не подходит для серверов без доступа из интернета
Не требует доступа к DNS Не позволяет получить Wildcard-сертификат (*.site.ru)

DNS-01 (проверка через DNS)

[править]

Наиболее мощный метод, используется для сложных конфигураций.

Механика: ACME-клиент получает от CA уникальный токен и добавляет его в виде TXT-записи в DNS-настройки домена (_acme-challenge.site.ru). CA запрашивает DNS-серверы и проверяет наличие этой записи.

Плюсы Минусы
Позволяет получить Wildcard-сертификат Требует доступа к API DNS-провайдера для автоматизации
Работает для серверов, скрытых от внешнего интернета Нужно время на распространение DNS-записей (propagation time)
Не требует открытых портов на сервере Сложнее в настройке

Сравнение методов проверки

[править]
Характеристика HTTP-01 DNS-01
Что проверяется Доступ к файлу на сервере TXT-запись в настройках домена
Нужен ли открытый порт 80 Да Нет
Поддержка Wildcard (*.site.ru) Нет Да
Сложность настройки Низкая (Certbot делает всё сам) Средняя (нужен API-ключ от DNS)
Применение Обычные сайты, блоги Сложные порталы, интранет-сети, маркетинговые сети из сотен поддоменов

Преимущества

[править]
  • Полная автоматизация - получение, проверка, продление и отзыв сертификатов происходят без участия человека.
  • Бесплатность - большинство центров сертификации, работающих по ACME (Let's Encrypt, ZeroSSL), предоставляют сертификаты бесплатно.
  • SEO-бонус - HTTPS является фактором ранжирования в Google и Яндекс; ACME делает HTTPS доступным для всех.
  • Безопасность - короткий срок действия сертификатов (90 дней) ограничивает ущерб при компрометации ключей.
  • Универсальность - протокол поддерживается всеми крупными CA и интегрирован в большинство панелей управления (cPanel, Plesk, ISPmanager).

Недостатки

[править]
  • Короткий срок действия - сертификаты действуют только 90 дней, что требует надёжной автоматизации продления.
  • Зависимость от автоматизации - при сбое ACME-клиента сайт может «лечь» из-за просроченного сертификата.
  • Ограниченная поддержка в некоторых средах - для DNS-01 нужен API-доступ к DNS-провайдеру, что не всегда возможно.
  • Не для всех типов сертификатов - ACME не подходит для выпуска EV-сертификатов (Extended Validation), требующих ручной проверки юридического лица.

Где используется

[править]

Протокол ACME применяется:

  • Веб-хостингом и серверами - автоматическое получение и продление SSL/TLS-сертификатов для миллионов сайтов.
  • Панелями управления - cPanel, Plesk, ISPmanager, Vestacp - встроенная поддержка Let's Encrypt через ACME.
  • Облачными платформами - автоматическая выдача сертификатов для балансировщиков нагрузки и CDN.
  • DevOps-инфраструктурой - интеграция ACME в конвейеры CI/CD для автоматической выдачи сертификатов тестовым стендам.
  • Маркетинговыми сетями - использование DNS-01 для получения одного Wildcard-сертификата на сотни лендингов на поддоменах.

Интересные факты

[править]
  • Срок действия 90 дней - сертификаты Let's Encrypt действуют всего 90 дней (против 1 года у платных). Это сделано специально: короткий срок стимулирует автоматизацию и ограничивает ущерб при краже ключей.
  • Масштаб - благодаря ACME количество зашифрованных страниц в интернете выросло с примерно 40 процентов в 2014 году до более 95 процентов к 2026 году. Let's Encrypt выдаёт более 3 миллиардов сертификатов в год.
  • Поддержка всеми гигантами - сегодня протокол поддерживают не только некоммерческие проекты: Google Trust Services, ZeroSSL, Buypass, Sectigo - все предоставляют ACME-API.
  • Wildcard-сертификаты через DNS-01 - для маркетинговых агентств, управляющих сотнями поддоменов (client1.site.ru, client2.site.ru), стандартом стал DNS-01, так как он позволяет использовать один сертификат на всю сеть площадок.

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

[править]

Что такое протокол ACME простыми словами?

[править]

Это «язык», на котором сервер договаривается с центром сертификации о выдаче SSL-сертификата. Благодаря ACME сертификат можно получить и продлить автоматически, без звонков менеджерам и без ручного ввода кодов.

Чем отличается HTTP-01 от DNS-01?

[править]

HTTP-01 проверяет, что сервер управляет сайтом (кладёт файл на сайт). DNS-01 проверяет, что сервер управляет всем доменом (меняет DNS-записи). HTTP-01 проще, но не даёт сертификат на все поддомены сразу. DNS-01 сложнее, зато позволяет получить Wildcard-сертификат (*.site.ru).

Почему сертификаты Let's Encrypt действуют только 90 дней?

[править]

Чтобы стимулировать автоматизацию. Если сертификат нужно продлевать вручную раз в год, администраторы часто забывают это делать, и сайт «падает». Раз в 90 дней забыть сложнее, а автоматизация делает процесс незаметным. Кроме того, короткий срок уменьшает ущерб при краже ключей.

Обязательно ли использовать ACME для HTTPS?

[править]

Нет, можно купить платный сертификат на год и устанавливать его вручную. Но ACME проще, быстрее и бесплатно. К 2026 году ACME стал стандартом де-факто для большинства сайтов.

Какие ACME-клиенты существуют?

[править]

Самый популярный - Certbot (от Electronic Frontier Foundation). Также: acme.sh (легковесный, поддерживает много DNS-провайдеров), Caddy (веб-сервер со встроенным ACME), Nginx и Apache с модулями, а также встроенные средства в панелях управления (cPanel, Plesk, ISPmanager).

Связанные термины

[править]