# Certbot

# Настройка certbot в ручном режиме

```bash
certbot certonly --standalone -n --agree-tos --email ПОЧТА -d CАЙТ.РФ -d www.САЙТ.РФ
```
создадим ссылку для docker-compose если основной nginx работает в докере

```bash
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
```
Создаем исполняемый файл в папке /root со след командами:

```bash
#!/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):

```bash
0 2   *   *   *    bash /root/certrenew.sh >> renew.log 2>&1
```
Каждый день в 2 ночи будет стартовать скрипт, рядом с ним можно будет найти как прошло обновление в файле renew.log

---
# Настройка certbot в автоматическом режиме, данные берутся из конфига nginx:

```bash
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
```bash
0 2   *   *   *   certbot renew  >> /root/renew.log 2>&1
```
Скрипт на случай если nginx только в docker:

```bash
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

```bash
apt-get install python-certbot-nginx
```