Получаем 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
 14   2016   nginx   ssl   web
Популярное