Перейти к основному содержанию

Let's Encrypt — настройка certbot в Ubuntu 20 для Apache

let's encrypt

Установим и настроим certbot для получения и обновления SSL сертификатов Let's Encrypt. Операционная система Ubuntu 20.04.6, веб-сервер Apache.

Let’s Encrypt — центр сертификации, начавший работу в бета-режиме с 3 декабря 2015 года, предоставляющий бесплатные криптографические сертификаты X.509 для TLS-шифрования (HTTPS). Процесс выдачи сертификатов полностью автоматизирован. https://letsencrypt.org/

Веб сервер работает, сайт, для которого требуется выпустить SSL сертификат, открывается по HTTPS. С HTTP настроен редирект на HTTPS. На сайте установлен платный сертификат, нужно заменить его на сертификат Let's Encrypt.

Работаем в sudo.

Установка certbot

Устанавливаем пакет для certbot:

apt-get update
apt-get install certbot
ssl

Устанавливаем пакет для apache:

apt-get install python3-certbot-apache
ssl

Запускаем:

certbot run --apache

Указываем e-mail администратора сертификатов Let's Encrypt. Принимаем лицензионное соглашение и отвечаем на вопросы.

ssl

Скрипт выводит список доменов, которые он нашёл в Apache. У меня примеры доменов. Указываем номер домена, для которого требуется сертификат. В данном случае пишем "1". Enter.

Если домены не нашлись, то ваш Apache, скорее всего, настроен на обслуживание любых доменов. В этом случае название домена нужно указать вручную.

ssl

Нас спрашивают, требуется ли вернуть редирект с HTTP на HTTPS. Соглашаюсь, пишу "2".

ssl

Скрипт отработал, сгенерировал сертификаты (сроком на 3 месяца) и изменил конфигурационные файлы сайта в Apache.

Перезапускаем Apache:

service apache2 restart

Проверяем работу сайта по HTTPS. Всё работает, сертификат новый.

Автоматическое обновление сертификатов

Срок действия SSL сертификатов Let's Encrypt — 3 месяца. Настроим автоматическое обновление.

certbot renew
ssl

Ошибок нет, наш сертификат не требует обновления. Проверим принудительное обновление:

certbot renew --force-renewal
ssl

Сертификат успешно обновляется. Certbot разрешает обновлять сертификат не чаще 5 раз в неделю. Если превысите лимит, то нужно ждать неделю.

Создаём сервис:

cd /etc/systemd/system/
vim certbot-renewal.service

Содержимое:

[Unit]
Description=Certbot Renewal

[Service]
ExecStart=/usr/bin/certbot renew --force-renewal --post-hook "systemctl reload apache2.service"

Обращаю внимание на опцию --post-hook, с помощью этой опции мы будем обновлять конфигурационный файл Apache после перевыпуска сертификата.

ssl

Создаём таймер.

vim certbot-renewal.timer

Содержимое:

[Unit]
Description=Timer for Certbot Renewal

[Timer]
OnBootSec=300
OnUnitActiveSec=1w

[Install]
WantedBy=multi-user.target
ssl

Включим таймер:

systemctl start certbot-renewal.timer

Автоматическое включение таймера:

systemctl enable certbot-renewal.timer

Статус таймера:

systemctl status certbot-renewal.timer
ssl

Последний запуск 19 секунд назад. Следующий через неделю.

Мы установили и настроили certbot для получения и обновления SSL сертификатов Let's Encrypt в операционной системе Ubuntu 20.04.6, веб-сервер Apache. Применили к одному из существующих доменов. Дополнительно настроили автоматическое еженедельное обновление сертификата.

Теги

 

Похожие материалы

Let's Encrypt — настройка certbot в Ubuntu 22

Установим и настроим certbot для получения и обновления SSL сертификатов Let's Encrypt. Операционная система Ubuntu 22.04.4, веб-сервер Nginx. Настраивать будем на примере развёрнутого SeaFile.

Теги

Обновляем Nginx на Ubuntu Server 20.04 из репозитория

Пришла задачка — обновить nginx на одном из web серверов. Главное требование, обновиться нужно на версию не ниже 1.21, потому что в более ранних версиях обнаружена какая-то уязвимость.

Теги