Коротко: бесплатный HTTPS ставится одной командой: Let's Encrypt выдаёт сертификаты, certbot получает их и сам продлевает; авто-продление — самое важное.
Бесплатный валидный HTTPS-сертификат сегодня ставится одной командой: Let's Encrypt выдаёт сертификаты автоматически, а утилита certbot получает их, прописывает в конфиг веб-сервера и сама продлевает. Разберём, как это работает, как настроить и почему авто-продление — самое важное.
Что такое Let's Encrypt и certbot
Let's Encrypt — некоммерческий центр сертификации, выдающий бесплатные TLS-сертификаты сроком на 90 дней по автоматизированному протоколу ACME. Certbot — официальный клиент, который проходит проверку владения доменом, забирает сертификат, вставляет его в конфиг Nginx/Apache и ставит таймер на продление. Никаких ручных загрузок файлов и оплат.
Как certbot подтверждает, что домен ваш
Чаще всего используется HTTP-01 challenge: certbot кладёт временный файл по пути /.well-known/acme-challenge/..., а сервер Let's Encrypt обращается к вашему домену по 80 порту и проверяет его. Поэтому до выпуска нужно, чтобы DNS уже указывал на сервер и порт 80 был открыт.
Установка и выпуск (Nginx)
# через snap (рекомендуемый способ) или пакетный менеджер
sudo apt install certbot python3-certbot-nginx
# выпустить сертификат и автоматически прописать его в конфиг Nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot спросит email (для уведомлений об истечении) и предложит автоматически настроить редирект с HTTP на HTTPS — соглашайтесь. После этого в конфиге Nginx появятся строки с путями к сертификату и ключу, а сайт заработает по https://.
Самое важное: авто-продление
Сертификат живёт всего 90 дней — продлевать вручную нереально. Certbot при установке создаёт системный таймер, который дважды в день пытается продлить то, что скоро истекает (реально обновляется примерно за 30 дней до конца). Проверить, что механизм жив, нужно сразу, не дожидаясь истечения:
# «сухой прогон» продления — не трогает боевой сертификат
sudo certbot renew --dry-run
# посмотреть таймер
systemctl list-timers | grep certbot
Если dry-run прошёл — продление настроено. Самая частая авария с HTTPS — это именно «сертификат протух, потому что продление молча сломалось». Поэтому проверьте таймер и оставьте рабочий email для алертов.
Минимальная гигиена TLS
- Редирект HTTP → HTTPS (certbot настраивает сам) — чтобы по 80 порту никто не ходил «голым».
- HSTS — заголовок
Strict-Transport-Security, чтобы браузер всегда ходил по HTTPS. Включайте осознанно: откатить тяжело. - Современные протоколы — TLS 1.2/1.3, старые SSLv3/TLS 1.0 отключены.
- Wildcard (
*.example.com) выпускается через DNS-01 challenge (нужен доступ к DNS-API), если поддоменов много.
Если у вас панель хостинга
На shared-хостинге с ispmanager/cPanel certbot часто уже встроен: HTTPS включается галочкой «Let's Encrypt» в панели, и продление там тоже автоматическое. Прямой доступ к certbot нужен в основном на своём VPS.
Итог
HTTPS перестал быть платным и сложным: certbot --nginx -d домен, согласиться на редирект, проверить certbot renew --dry-run — и сайт работает по защищённому соединению с авто-продлением. Главное — не забыть про продление и оставить живой email для уведомлений.
Если нужно поднять HTTPS на боевом сервере или разобраться, почему продление не срабатывает, — помогу на консультации.
После выката HTTPS полезно завести мониторинг доступности и срока сертификата — например, на своём сервере через Gotcha.

Комментарии