Определение простыми словами
Certbot — это утилита, которая разговаривает с серверами Let’s Encrypt по протоколу ACME, проходит проверку владения доменом и кладёт готовый сертификат в нужную папку. После первого запуска Certbot сам ставит cron-задачу или systemd-таймер, который раз в день проверяет срок действия сертификата и продлевает его за 30 дней до истечения. Для админа это означает «один раз настроил — забыл».
Для подтверждения домена клиент использует один из челленджей: HTTP-01 (файл в /.well-known/acme-challenge/), DNS-01 (TXT-запись в зоне домена) или TLS-ALPN. Чаще всего работает HTTP-01: Certbot временно поднимает мини-сервер на 80 порту или подкладывает файл в каталог уже работающего сайта.
Сравнение режимов
| Режим | Когда использовать | Минусы |
|---|---|---|
| —nginx | Сайт работает на Nginx | Меняет конфиг автоматически |
| —apache | Сайт на Apache | Требует mod_ssl |
| —standalone | Веб-сервер выключен | Нужно остановить 80 порт |
| —webroot | Любой веб-сервер | Нужно знать docroot |
| —dns-cloudflare | Wildcard *.example.com | Нужен API-токен DNS |
Кейсы использования
- Выпуск SSL для лендинга на VPS за одну команду.
- Wildcard-сертификат на все поддомены через DNS-01 и API хостинга.
- Автоматизация через Ansible или Docker-контейнер certbot/certbot.
- Негативный сценарий: при rate-limit Let’s Encrypt (5 сертификатов на домен в неделю) повторные неудачные запуски заблокируют выпуск. Тестируйте через —staging.
Технические детали
apt install certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
certbot certificates
certbot renew --dry-run
systemctl status certbot.timer
certbot certonly --dns-cloudflare
--dns-cloudflare-credentials /root/.secrets/cf.ini
-d "*.example.com"
Сертификаты складываются в /etc/letsencrypt/live/<домен>/, ключ — в privkey.pem, цепочка — в fullchain.pem. Подробнее об инфраструктуре смотрите статьи о Let’s Encrypt, CA и OpenSSL.
🔥 Где это применяется
Частые вопросы
Сколько действует сертификат Let’s Encrypt?
90 дней. Certbot продлевает его автоматически за 30 дней до окончания, поэтому ручное вмешательство не требуется.
Можно ли получить wildcard через Certbot?
Да, но только через DNS-01 и API DNS-провайдера: Cloudflare, Route53, DigitalOcean и другие.
Что делать при ошибке rate limit?
Использовать флаг --staging для тестов и подождать неделю. Лимит — 5 сертификатов на домен и 50 на аккаунт.