Устанавливаем 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 будет ругаться :)
Готово :)