Если вы видите что-то необычное, просто сообщите мне. Skip to main content

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