Certbot
Настройка certbot в ручном режиме
certbot certonly --standalone -n --agree-tos --email ПОЧТА -d CАЙТ.РФ -d www.САЙТ.РФ
создадим ссылку для docker-compose если основной nginx работает в докере
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Создаем исполняемый файл в папке /root со след командами:
#!/bin/bash
date
echo -e "stoping nginx service"
systemctl stop nginx
echo -e "renewing certs"
certbot renew
echo -e "start nginx service"
systemctl start nginx
Лезем в crontab -e и добавляем правило(тут нужно отметить что лезем от имени root):
0 2 * * * bash /root/certrenew.sh >> renew.log 2>&1
Каждый день в 2 ночи будет стартовать скрипт, рядом с ним можно будет найти как прошло обновление в файле renew.log
Настройка certbot в автоматическом режиме, данные берутся из конфига nginx:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
sudo certbot --nginx
sudo certbot renew --dry-run
Ну и добавить к крон certbot renew
0 2 * * * certbot renew >> /root/renew.log 2>&1
Скрипт на случай если nginx только в docker:
docker exec NGINXCONTANERNAME apk add py3-pip certbot
docker exec NGINXCONTANERNAME pip3 install pip --upgrade
docker exec NGINXCONTANERNAME pip3 install certbot-nginx
docker exec NGINXCONTANERNAME certbot renew
где NGINXCONTANERNAME - название контейнера с докером.
Установить certbot nginx plugin
apt-get install python-certbot-nginx