Получаем SSL сертификат Let’s Encrypt.
sudo yum install epel-release
sudo yum install certbot
vi /etc/nginx/letsencrypt.conf
location ^~ /.well-known/acme-challenge {
alias /var/lib/letsencrypt/.well-known/acme-challenge;
default_type "text/plain";
try_files $uri =404;
}
В конфигурационном файле хоста, секцию server, include-ом добавляем конфиг.
vi /etc/nginx/conf.d/$HOST.conf
server {
...
include letsencrypt.conf;
}
Изменяем группу и выставляем права.
chgrp nginx /var/lib/letsencrypt && chmod g+s /var/lib/letsencrypt
Получаем сертификат.
certbot certonly --webroot --email mail@example.com -w /var/lib/letsencrypt -d example.com -d www.example.com
Сертификат действует 90 дней, после чего его необходимо продлить. Для автоматизации этой процедуры создаем systemd.service и systemd.timer.
/etc/systemd/system/certbot.service
[Unit]
Description=Renew Certbot certificate (nginx)
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --renew-hook "/usr/bin/systemctl reload nginx.service"
Timer будет запускать основной сервис ежедневно в 12 и 00 часов.
/etc/systemd/system/certbot.timer
[Unit]
Description=Daily renewal of Let's Encrypt's certificates
[Timer]
OnCalendar=*-*-* 00,12:00:00
Persistent=true
[Install]
WantedBy=timers.target
Активируем timer.
sudo systemctl daemon-reload
systemctl start certbot.timer
systemctl enable certbot.timer