Certbot: установка, выпуск SSL и автопродление | Глоссарий FREEHOSTING

Certbot

Certbot ACME Client
Certbot — Certbot — официальный консольный клиент протокола ACME от Electronic Frontier Foundation. Автоматически выпускает и продлевает бесплатные SSL-сертификаты Let’s Encrypt, прописывает их в конфиг Nginx или Apache и настраивает HTTPS-редирект без ручной правки файлов.

Определение простыми словами

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 на аккаунт.