Правильная установка Let’s encrypt для работы с apache

У данного приложения есть несколько режимов работы, основной — standalone, его чаще всего встречаю в мануалах, но для автоматизированного обновления сертификатов на сервере с apache (или nginx), этот режим не подходит.

Почему не подходит? Потому что в данном режиме lets encrypt проверяет ваши права на домен, сертификат к которому вы генерите занимая порт tcp:80 вместо на котором ждет обращение с сервера lets encrypt. Понятное дело, что если у вас запущен апач, то данный порт им будет занят и скрипт отвалится с ошибкой.

В репозитории ubuntu есть специальные пакеты для данной задачи:

sudo apt install python3-certbot-nginx
sudo apt install python3-certbot-apache

заклинание для настройки апача:

sudo certbot --apache --agree-tos --preferred-challenges http -d domain-name.com

для nginx:

sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name.com

скрипт задаст несколько вопросов, получит сертификаты, установит их, а так же настроит ваш веб сервер на работу с ними. Кроме того создаст юниты в systemd на регулярное обновление сертификатов.