Бесплатный SSL-сертификат Let’s Encrypt для Apache в Ubuntu

Как выпустить бесплатный SSL-сертификат Let’s Encrypt для сайта на Apache с помощью certbot и настроить автоматическое продление.

Актуальность. Раньше клиент Let’s Encrypt ставили из GitHub-репозитория (letsencrypt-auto). Этот способ устарел — сейчас используется официальный клиент certbot из репозитория системы или snap.

1. Установка certbot

sudo apt update
sudo apt install certbot python3-certbot-apache

2. Выпуск сертификата

sudo certbot --apache -d example.com -d www.example.com

Укажите через -d все домены и поддомены, которые должны работать по HTTPS. Certbot проверит, что домены указывают на этот сервер, выпустит сертификат, сам пропишет его в конфигурацию Apache и предложит включить редирект с HTTP.

3. Автоматическое продление

Сертификат действует 90 дней. Пакет certbot сам создаёт таймер systemd, который проверяет сертификаты дважды в день и продлевает те, у которых осталось меньше 30 дней. Проверить, что продление сработает:

systemctl list-timers | grep certbot
sudo certbot renew --dry-run

Если таймера нет (старые системы), добавьте задание в cron через sudo crontab -e:

30 2 * * 1 certbot renew --quiet --post-hook "systemctl reload apache2"

Если сайт на 1С-Битрикс

На «1С-Битрикс: Веб-окружении» сертификат Let’s Encrypt выпускается и продлевается из меню окружения — отдельный certbot не нужен.

Все статьи

Расскажите о задаче — подберём платформу и оценим работу

Обсудить проект