6.21 Выпуск SSL-сертификатов с помощью Certbot

SSL-сертификат необходим для защиты сайта по протоколу HTTPS. Он шифрует трафик между пользователем и сервером, повышает доверие к сайту и помогает SEO-продвижению. Один из самых простых способов получить бесплатный сертификат — использовать Certbot от Let’s Encrypt.
В этой инструкции мы покажем, как выпустить и подключить SSL-сертификат на VPS или выделенный сервер с помощью Certbot.
Важно: если Ваш сайт размещен на нашей услуге хостинга или на сервере с панелью ISPManager4, эта инструкция для Вас неактуальна. Функционал выпуска SSL Let’s Encrypt на таких услугах уже существует в более быстрой и удобной реализации. С актуальной инструкцией про выпуск и подключение бесплатного SSL Let’s Encrypt на этих услугах Вы можете ознакомиться по ссылке.
Требования
Перед началом убедитесь, что:
- У вас есть доменное имя, указывающее на Ваш сервер (через A-запись).
- Сервер работает на актуальных версиях ОС из семейства Linux.
- На сервере установлен веб-сервер такой как Nginx или Apache.
- Порты 80 и 443 открыты.
Важно: Сертификаты Let’s Encrypt действуют 90 дней. Однако, Certbot позволяет автоматизировать процесс их продления.
Пошаговая установка Certbot
Учтите: нижеописанная инструкция написана на примере сервера с Ubuntu-22.04. Значения команд могут оличаться – На Centos вместо sudo apt используем sudo yum.
1. Обновляем пакеты:
sudo apt update

2. Устанавливаем Certbot и плагин для веб-сервера:
Для Nginx
sudo apt install -y certbot python3-certbot-nginx

Для Apache
sudo apt install -y certbot python3-certbot-apache

3. Проверяем версию Certbot:
certbot --version

Если видим актуальную версию (например, certbot 1.32.0), значит установка прошла успешно.
Выпуск сертификата
1. Убедитесь, что сайт работает и доступен по HTTP. Проверьте, что ваш домен (например, example.com) открывается в браузере. Certbot проверяет владение доменом именно через порт 80.
2. Запускаем Certbot:
Для Nginx
sudo certbot --nginx

Для Apache
sudo certbot --apache

В процессе автоматической установки Certbot:
- Найдет виртуальные хосты;
- Предложит выбрать нужный домен;
- Настроит HTTPS автоматически.
Совет: Certbot сам обновит конфигурацию Nginx/Apache, добавив редирект на HTTPS.
3. Проверяем работу. Откройте сайт в браузере. Если всё настроено правильно, Вы увидите замок в адресной строке и протокол https://.
Также можно проверить SSL через:
curl -I https://example.com
Автоматическое продление
Certbot автоматически настраивает cron или systemd-timer для продления сертификатов.
Проверить автопродление можно вручную:
sudo certbot renew --dry-run
Если видим Congratulations, all renewals succeeded, значит всё работает.
Заключение
Теперь ваш сайт защищён бесплатным сертификатом Let’s Encrypt, а Certbot позаботится о продлении автоматически.
Что можно сделать дальше:
-
Настроить редирект с HTTP на HTTPS вручную (если не выбрали это в Certbot).
-
Добавить HSTS в конфигурацию сервера.
-
Настроить CloudFlare с поддержкой SSL.


