Все статьи о SSL SSL и сертификаты

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

ACME (Automated Certificate Management Environment) — это протокол, который делает возможными бесплатные автоматизированные SSL-сертификаты. Именно так Let’s Encrypt — и ваш ACME-клиент (GetHTTPS, Certbot, acme.sh) — фактически взаимодействует с удостоверяющим центром.

Определенный в RFC 8555, ACME заменил старый ручной процесс (отправка CSR в CA по электронной почте, ожидание проверки человеком) полностью автоматизированным, криптографически защищенным протоколом.

Как работает ACME — 5 шагов

┌──────────┐                              ┌──────────────┐
│  Client   │  ① Account Registration     │  CA Server   │
│ (GetHTTPS)│ ──────────────────────────→  │ (Let's Encrypt)
│           │  ② New Order (domains)       │              │
│           │ ──────────────────────────→  │              │
│           │  ③ Complete Challenges       │              │
│           │ ←─────────────────────────── │              │
│           │ ──────────────────────────→  │              │
│           │  ④ Finalize (send CSR)       │              │
│           │ ──────────────────────────→  │              │
│           │  ⑤ Download Certificate      │              │
│           │ ←─────────────────────────── │              │
└──────────┘                              └──────────────┘

Шаг 1: Регистрация аккаунта

Клиент генерирует пару ключей ACME-аккаунта и регистрирует открытый ключ в CA. Этот ключ идентифицирует вас в будущих запросах — каждое ACME-сообщение подписывается им.

Не требуется ни email, ни пароль, ни личная информация.

Шаг 2: Новый заказ

Клиент отправляет список доменных имен, для которых нужен сертификат. CA создает «заказ» и возвращает набор «авторизаций» — по одной на каждый домен — каждая с challenge-запросами для выполнения.

Шаг 3: Выполнение challenge-запросов

Для каждого домена клиент должен доказать контроль. CA предлагает типы challenge-запросов:

ChallengeКак это работаетСлучай использования
HTTP-01Разместите файл по адресу /.well-known/acme-challenge/Наиболее распространенный, простейший
DNS-01Добавьте TXT-запись к _acme-challenge.domainWildcard, нет порта 80
TLS-ALPN-01Ответьте на порту 443 специальным TLS-сертификатомКогда порт 80 заблокирован, нет доступа к DNS

Клиент выполняет challenge, затем сообщает CA о проверке. CA проверяет со своих серверов — если challenge пройден, авторизация отмечается как действительная.

Шаг 4: Финализация (отправка CSR)

После авторизации всех доменов клиент отправляет CSR (Certificate Signing Request), содержащий открытый ключ для сертификата. CA подписывает его и создает сертификат.

Шаг 5: Загрузка сертификата

Клиент загружает подписанную цепочку сертификатов — ваш сертификат + промежуточный сертификат CA. Готово.

Модель безопасности ACME

Каждый ACME-запрос подписывается с помощью JWS (JSON Web Signature) ключом аккаунта. Это предотвращает:

  • Атаки повторного воспроизведения — каждый запрос содержит уникальный nonce
  • Подделку — подпись покрывает все тело запроса
  • Имперсонацию — только владелец ключа аккаунта может делать запросы

Ключ аккаунта никогда не покидает клиент. В GetHTTPS он генерируется в вашем браузере через Web Crypto API.

Как GetHTTPS использует ACME

GetHTTPS реализует полный протокол ACME на JavaScript, выполняемом в вашем браузере:

  1. Ключ аккаунта генерируется с помощью crypto.subtle.generateKey() (Web Crypto API)
  2. Ключ сертификата генерируется таким же образом
  3. ACME-сообщения подписываются с помощью crypto.subtle.sign()
  4. CSR создается с помощью библиотеки pkijs
  5. Прямое HTTPS-взаимодействие с acme-v02.api.letsencrypt.org

Без серверного прокси, без промежуточного ПО. Ваш браузер общается напрямую с ACME API Let’s Encrypt. Это уникально — большинство ACME-клиентов работают на сервере.

Сравнение ACME-клиентов

КлиентГде работаетACME v2АвтообновлениеЯзык
GetHTTPSБраузер❌ ВручнуюJavaScript
CertbotCLI сервераPython
acme.shCLI сервераShell
CaddyВеб-серверGo
TraefikОбратный проксиGo
LegoCLI-библиотекаGo

Полное сравнение →

CA, поддерживающие ACME

ACME был создан Let’s Encrypt, но теперь это открытый стандарт, используемый несколькими CA:

CAURL директории ACMEБесплатно?
Let’s Encryptacme-v02.api.letsencrypt.org/directory
ZeroSSLacme.zerossl.com/v2/DV90Ограниченно бесплатно
Buypassapi.buypass.com/acme/directory
Google Trust ServicesЧерез Google Cloud ACME
DigiCertКорпоративная ACME-конечная точкаПлатно
SectigoКорпоративная ACME-конечная точкаПлатно

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

ACME и Let’s Encrypt — это одно и то же?

Нет. ACME — это протокол (RFC 8555). Let’s Encrypt — это удостоверяющий центр, который использует ACME. Другие CA (ZeroSSL, Buypass, Google) также поддерживают ACME. Это похоже на HTTP и Google — HTTP — это протокол, Google — сервис, который его использует.

Могу ли я реализовать свой ACME-клиент?

Да. Протокол полностью описан в RFC 8555. GetHTTPS — пример реализации в браузере. Библиотеки существуют для большинства языков (certbot для Python, lego для Go, acme.js для JavaScript).

Что такое ACME v2?

ACME v2 — это текущая версия (RFC 8555), которая добавила поддержку wildcard-сертификатов и заменила черновой протокол v1. Все современные ACME-клиенты используют v2. Let’s Encrypt отключил конечную точку v1 в 2021 году.

Что произойдет, если сервер ACME недоступен?

Существующие сертификаты продолжают работать (они не обращаются к серверу). Вы просто не сможете выпустить или обновить сертификат до восстановления сервера. Let’s Encrypt имеет высокий аптайм и резервную инфраструктуру.

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

SSL и сертификаты 2026-05-07
Что такое Let's Encrypt?
Let's Encrypt — бесплатный некоммерческий удостоверяющий центр, выдавший более 1 миллиарда SSL-сертификатов. Узнайте, как он работает, его лимиты и как использовать его с GetHTTPS.
Начало работы 2026-05-08
HTTP-01 Challenge: как это работает и как его пройти
HTTP-01 --- самый простой способ подтвердить владение доменом для получения SSL-сертификата. Разместите файл на сервере, Let's Encrypt проверит его, и сертификат будет выпущен.
Начало работы 2026-05-08
DNS-01 Challenge: как это работает и как его пройти
DNS-01 валидация подтверждает владение доменом путём добавления TXT-записи в DNS. Обязательна для wildcard-сертификатов. Инструкции для Cloudflare, Route 53, GoDaddy, Namecheap и других.
SSL и сертификаты 2026-05-07
Как работает SSL/TLS: TLS-рукопожатие в деталях
Наглядное объяснение TLS-рукопожатия -- как ваш браузер и сервер устанавливают зашифрованное соединение за миллисекунды. Охватывает TLS 1.2, TLS 1.3, возобновление сеанса и прямую секретность.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат