Скрипт и systemd-таймер автоматического перевыпуска Let's Encrypt SSL

Обновлено: Август 2026 Стек: Certbot, Systemd Timer, Nginx/Apache Проверено: Production-Ready

Готовый systemd service и timer для certbot renew: автоматический перезапуск Nginx/Apache через post-hook, логирование и проверка срока действия SSL сертификата.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/systemd/system/certbot-renew.timer
# /etc/systemd/system/certbot-renew.service
[Unit]
Description=Certbot SSL Renewal Service
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

# /etc/systemd/system/certbot-renew.timer
[Unit]
Description=Run Certbot twice daily

[Timer]
OnCalendar=*-*-* 03,15:30:00
RandomizedDelaySec=3600
Persistent=true

[Install]
WantedBy=timers.target

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
--post-hook 'systemctl reload nginx' reload nginx Бесшовно обновляет сертификаты в памяти веб-сервера без обрыва пользовательских соединений.
RandomizedDelaySec=3600 1 час Рандомизирует время запроса к серверам Let's Encrypt, исключая пиковые перегрузки.
ufw default deny incoming deny incoming Блокирует все входящие порты по умолчанию, оставляя доступными только явно разрешенные сервисы (HTTP/HTTPS/SSH).
bantime = 24h 24h Блокирует IP адрес атакующего на 24 часа при превышении порога неудачных попыток авторизации.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: Любой Linux сервер с Certbot
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
1 vCPU / 1 GB RAM / 10 GB
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
1 vCPU / 1 GB RAM / 10 GB
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
1 vCPU / 1 GB RAM / 10 GB

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Как протестировать обновление вручную?
Выполните `certbot renew --dry-run`.
Как не заблокировать собственный IP адрес?
Добавьте ваш IP в директиву `ignoreip = 127.0.0.1/8 ::1 ВАШ_IP` в файле `/etc/fail2ban/jail.local`.
Как разблокировать ошибочно забаненный IP?
Выполните команду `fail2ban-client set <jail_name> unbanip <IP_ADDRESS>`.