Установка certbot-а через pip

Устанавливаем зависимости на сервере и удаляем старые версии certbot:

sudo apt update && sudo apt install -y python3 python3-venv libaugeas0
sudo apt remove certbot

Запуск виртуальной среды, обновление pip и установка certbot:

sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-nginx
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot

Получение SSL сертификата:

sudo certbot --nginx  # автоматическая конфигурация https в nginx
 
sudo certbot certonly --nginx  # просто получить сертификат

Настройка автоматического продлевания сертификата:

echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

Обновление certbot

sudo /opt/certbot/bin/pip install --upgrade certbot certbot-nginx

certbot стоит обновлять ежемесячно

Troubleshoot

При возникновении траблов при установке и настройке нужно удалить виртуальное окружение и повторить установку:

sudo rm -rf /opt/certbot