Установка и настройка сертификатов Let’s Encrypt

На сегодняшний день, бесплатные SSL-сертификаты довольно часто используются в работе сайтов, их использование оправдано в тех случаях, когда мы желаем сделать свой сайт более безопасным и тем самым повысить его рейтинг со стороны SEO. До недавних пор большой популярностью пользовались сертификаты от SlartSSL и WoSign, однако, многие браузеры перестали им доверять и большинство сайтов оказалось с нерабочими, но валидными SSL-сертификатами. Толку от них нет, если пользователь видит ошибку при открытии сайта, если бы не решение от Let's Encrypt, то в нашем арсенале остался бы только один вариант - покупать сертификат :) Итак, приступим к установке и настройке Let's Encrypt:
rpm -ihv http://rpms.southbridge.ru/southbridge-rhel6-stable.rpm
yum clean all
yum install letsencrypt -y
Далее правим конфигурационный файл:
mv /etc/letsencrypt/configs/my-domain.conf /etc/letsencrypt/configs/nagg.ru.conf
vi /etc/letsencrypt/configs/nagg.ru.conf
Приводим его к следующему виду:
# the domain we want to get the cert for;
# technically it's possible to have multiple of this lines, but it only worked
# with one domain for me, another one only got one cert, so I would recommend
# separate config files per domain.
#domains = my-domain, my-domain2, my-domain3
domains = nagg.ru

# increase key size
rsa-key-size = 2048 # Or 4096

# the current closed beta (as of 2015-Nov-07) is using this server
server = https://acme-v01.api.letsencrypt.org/directory

# this address will receive renewal reminders
email = sf@nagg.ru

# turn off the ncurses UI, we want this to be run as a cronjob
text = True

# authenticate by placing a file in the webroot (under .well-known/acme-challenge/)
# and then letting LE fetch it
authenticator = webroot
webroot-path = /var/www/letsencrypt/
Добавляем в конфиг Nginx вашего сайта (в раздел с HTTP):
location /.well-known/acme-challenge {
        root /var/www/letsencrypt;
    }
Запускаем утилиту для выпуска сертификата
su - letsencrypt
certbot-auto --config /etc/letsencrypt/configs/nagg.ru.conf --no-self-upgrade certonly
При первом запуске он попросит ввести почту, на которую letsencrypt будет слать письма в случае проблем с сертификатом. Потом будет сообщение о принятии условий соглашения, принимаем и, наконец, запрос на разрешение разадчи нашего емейла всяким спамерам. Отвечаем "No".
(A)gree/(C)ancel: A
(Y)es/(N)o: N
Если всё прошло успешно, получим сообщение:
Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/my-domain/nagg.ru.pem.
Добавляем в Nginx и проверяем:
listen 443 ssl;
ssl_certificate     /etc/letsencrypt/live/nagg.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nagg.ru/privkey.pem;
Осталось добавить один маленький штрих, создать скрипт /srv/scripts/renew-letsencrypt.sh для автоматического обновления всех выпущенных сертификатов.
#!/bin/sh

/usr/bin/certbot-auto --no-self-upgrade renew
sudo /sbin/service nginx reload
chmod a+x /srv/scripts/renew-letsencrypt.sh
Добавляем задание в крон на перевыпуск сертификата каждые 2 месяца:
vi /etc/cron.d/renew-letsencrypt
0 0 1 */2 * letsencrypt /srv/scripts/renew-letsencrypt.sh >> /var/log/letsencrypt/nagg.ru.log 2>&1
/etc/init.d/crond reload

Добавить комментарий