Бесплатный 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 не нужен.