Користувачі часто забувають продовжити 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.







