ACME
ACME (Automatic Certificate Management Environment, RFC 8555) — протокол автоматического выпуска и обновления TLS-сертификатов. Придуман Let\'s Encrypt в 2016, теперь стандарт индустрии.
Как работает
- Клиент создаёт account key + отправляет запрос на CA.
- CA даёт challenge — докажи что владеешь доменом.
- Клиент выполняет challenge (см. ниже).
- CA проверяет → выдаёт сертификат по CSR.
Типы challenge
| Тип | Как | Порт |
|---|---|---|
| HTTP-01 | Положить файл в /.well-known/acme-challenge/<token> | 80 |
| DNS-01 | TXT-запись _acme-challenge.example.com | — |
| TLS-ALPN-01 | Спец. сертификат по ALPN acme-tls/1 | 443 |
DNS-01 умеет wildcard (*.example.com). HTTP-01 и TLS-ALPN — только для конкретных имён.
Публичные CA
- Let\'s Encrypt —
acme-v02.api.letsencrypt.org, самая популярная - ZeroSSL — требует EAB (External Account Binding)
- Buypass — норвежская, 180-day сертификаты
- Google Trust Services —
dv.acme-v02.api.pki.goog
Клиенты
- certbot — эталон от EFF, python
- acme.sh — 100% shell, самый совместимый
- Caddy — встроенный, ACME по умолчанию
- Traefik, Nginx Proxy Manager, cert-manager (k8s)
- lego, uacme, simp_le
Rate limits Let\'s Encrypt
- 50 сертификатов/неделя на registered domain
- 300 pending challenges/аккаунт/час
- 5 дубликат-сертификатов/неделя (одинаковый набор имён)
ARI (RFC 9773)
ACME Renewal Information — новый механизм: CA рекомендует когда обновляться (window). Полезно для массового реновейт при отзывах.
EAB
External Account Binding — привязка ACME-аккаунта к существующей учётке в CA. Нужен для ZeroSSL, коммерческих CA.