Certbot nginx Debian 12 как установить

Устанавливаем certbot:

apt install python3-certbot python3-certbot-nginx

Затем вам нужно проверить, чтобы в DNS было прописано, что ваш домен указывает на тот сервер, где вы устанавливаете certbot. После этого команда на получение сертификата:

certbot certonly --nginx -d mydomain.ru

При первом запуске команды certbot спросит ваш емейл адрес (введите) и спросит не хотите ли вы получать рассылки всякие. Это процедура регистрации, ни к чему не обязывающая. После этого происходит процедура получения сертификата

Итоговый вывод команды должен быть таким:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for mydomain.ru

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mydomain.ru/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mydomain.ru/privkey.pem
This certificate expires on 2025-05-02.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le

Дальше остаётся только отредактировать конфигурацию nginx для использования сертификата:

server {
        listen                  443 ssl http2;

        server_name             mydomain.ru;
        
        ssl_certificate /etc/letsencrypt/live/mydomain.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mydomain.ru/privkey.pem;
        ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  "RC4:HIGH:!aNULL:!MD5:!kEDH";

        .....
}

Сертификат выдается на 3 месяца, поэтому сертификаты нужно автоматически продлевать. Для этого существует команда
certbot renew, поэтому давайте ее добавим в cron, чтобы сервер сам обновлял сертификаты:

Вводим команду crontab -e (желательно от пользователя root)

crontab -e

В открывшемся редактора в самый конец файла вставляем строку

0,12 * * * * certbot renew

И обязательно нажмите enter, чтобы добавить пустую строку в конце файла, иначе cron будет ругаться :)

Готово :)