ACME
Протокол 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
[править]- Регистрация (Account Creation) - ACME-клиент генерирует пару ключей (публичный и приватный) и регистрирует учётную запись в CA.
- Заказ сертификата (Order) - клиент отправляет CA список доменов, для которых нужен сертификат.
- Проверка владения (Authorization / Challenge) - CA предлагает клиенту выполнить задачу (challenge), доказывающую, что клиент управляет доменом.
- Выпуск (Issue) - после успешной проверки CA подписывает сертификат и возвращает его клиенту.
- Установка (Install) - ACME-клиент устанавливает сертификат в настройки веб-сервера (Nginx, Apache, Caddy).
- Автоматическое продление (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).
