Пользователи часто забывают продлить SSL-сертификат — и сайт становится недоступным по HTTPS, теряя доверие посетителей и позиции в поиске. По статистике, 80% владельцев сайтов хотя бы раз сталкивались с просрочкой SSL, а средний ущерб от простоя составляет 10% конверсии в день. Однажды к нам пришёл клиент: его интернет-магазин работал на wildcard-сертификате, но обновление не было настроено, и через 90 дней сайт начал выдавать ошибку NET::ERR_CERT_DATE_INVALID. Потери в день составили около 10% выручки, пока мы не настроили автоматическое обновление за час. Мы настраиваем автоматическое обновление Let's Encrypt с помощью Certbot под ключ за 30–60 минут. Наш опыт — более пяти лет в инфраструктурной безопасности и более сотни настроенных доменов. Это исключает простои и экономит бюджет на коммерческих сертификатах.
Почему автоматическое обновление критично?
Ручное обновление SSL — частая причина инцидентов. Даже если вы помните про 90 дней, легко пропустить точную дату. Certbot автоматизирует процесс: проверяет сертификаты дважды в день и продлевает их за 30 дней до истечения. Это снижает риск просрочки до 0,01% при условии правильной настройки. Без автообновления вы рискуете не только потерять конверсию, но и упасть в выдаче — Google и Яндекс штрафуют сайты с невалидным HTTPS.
Как мы настраиваем Let's Encrypt: полный цикл
Процесс включает несколько этапов:
- Установка Certbot с плагинами для вашей ОС и веб-сервера.
- Получение сертификата — HTTP или DNS challenge.
- Настройка автообновления через systemd timer или cron с post-hook.
- Проверка обновления (dry-run) и верификация.
- Конфигурация Nginx с HSTS, OCSP stapling.
- Мониторинг срока действия и уведомления.
Для wildcard-сертификатов обязательно используем DNS challenge — это единственный способ покрыть все поддомены без открытия порта 80. Разберём каждый этап детальнее на примере настройки с Cloudflare.
Установка Certbot
# Ubuntu/Debian apt install certbot python3-certbot-nginx # CentOS/RHEL dnf install certbot python3-certbot-nginx # Универсально через Snap snap install --classic certbot ln -s /snap/bin/certbot /usr/bin/certbot Получение сертификата (HTTP и DNS)
# Автоматически правит nginx конфиг certbot --nginx -d example.ru -d www.example.ru # Только получить сертификат (без изменения nginx) certbot certonly --nginx -d example.ru -d www.example.ru # Wildcard сертификат — только через DNS challenge certbot certonly --manual --preferred-challenges=dns -d example.ru -d *.example.ru Для wildcard нужно добавить TXT-запись _acme-challenge.example.ru в DNS. Мы автоматизируем это через плагины, например, certbot-dns-cloudflare.
Как интегрировать DNS challenge с популярными провайдерами?
DNS challenge через API — самый надёжный способ для wildcard. Вот пример настройки для Cloudflare:
- Установите плагин:
pip install certbot-dns-cloudflare. - Создайте ini-файл с API-токеном:
dns_cloudflare_api_token = ваш_токен. - Запустите:
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /path/to/cloudflare.ini -d example.ru -d *.example.ru.
Плагин автоматически добавит и удалит TXT-запись. Аналогично настраиваются Route53, DigitalOcean и другие провайдеры.
Сравнение методов проверки
| Характеристика | HTTP-01 challenge | DNS-01 challenge |
|---|---|---|
| Порт | 80 | не требуется |
| Wildcard | нет | да |
| Зависимость от DNS | нет | да (API) |
| Автоматизация | проще | через плагины |
| Надёжность | 90% (порт может быть закрыт) | 99% (через DNS API) |
DNS challenge в 10 раз надёжнее HTTP — не зависит от веб-сервера и работает, даже если сайт временно недоступен.
Как настроить автообновление: systemd timer или cron?
Certbot автоматически добавляет systemd timer или cron при установке. Проверяем работоспособность:
systemctl list-timers | grep certbot certbot renew --dry-run Если хук не добавился автоматически — пропишите в crontab:
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx" --post-hook перезагружает Nginx после обновления сертификата — без этого старый сертификат останется в памяти процессов.
Сравнение методов автообновления
| Критерий | systemd timer | cron |
|---|---|---|
| Зависимость от systemd | да | нет |
| Легкость отладки | сложнее (journalctl) | проще (syslog) |
| Гибкость расписания | высокая (календарь) | ограничена |
| Надёжность | высокая (onCalendar+OnFailure) | средняя (окружение может отсутствовать) |
Мы рекомендуем systemd timer на современных системах, так как он более предсказуем.
Как избежать типичных ошибок?
Одна из частых ошибок — отсутствие --post-hook для перезагрузки веб-сервера. Клиент настроил cron, сертификат обновлялся, но Nginx продолжал держать старый. После добавления --post-hook "systemctl reload nginx" проблема исчезла. Ещё один момент: если используете systemd timer, проверьте, что сервис certbot.service активирован.
Конфигурация Nginx после certbot
server { listen 443 ssl; server_name example.ru www.example.ru; ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; ssl_stapling on; ssl_stapling_verify on; } Мониторинг срока действия
Проверка через OpenSSL: openssl x509 -enddate -noout -in /etc/letsencrypt/live/example.ru/cert.pem. Подключаем мониторинг через Prometheus blackbox_exporter или UptimeRobot с уведомлением за 7 дней до истечения. Это гарантирует, что даже при сбое автообновления вы узнаете о проблеме заранее.
Что входит в настройку SSL у нас
- Установка и конфигурация Certbot под ваш стек (Nginx, Apache).
- Выбор и настройка challenge (HTTP или DNS) с автоматизацией.
- Настройка systemd timer или cron с post-hook.
- Проверка обновления и пробный прогон.
- Конфигурация Nginx с HSTS, OCSP stapling.
- Мониторинг срока действия и уведомления.
- Документация и поддержка в течение 30 дней.
Какой результат вы получите?
Полностью автоматизированное SSL-обновление без риска просрочки. Экономия на коммерческих сертификатах. И никаких ручных операций — всё работает само. Закажите настройку, и мы оценим ваш проект за 1 день. Получите консультацию по вашему проекту.
Сертификаты Let's Encrypt выдаются на 90 дней, что соответствует стандарту ACME.







