Let’s Encrypt Wildcard сертификат на CentOS 7 и автоматизация его обновлений

1) Получение сертификата

Для установки wildcard сертификата letsencrypt воспользуемся утилитой certbot.

Стоит оговориться что для получения wildcard сертификата, подтверждение владения доменом возможно только через TXT
запись в DNS.

yum install certbot

Затем :

certbot -d *.zobra.ru -d zobra.ru --manual --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory

После этого нам зададут пару вопросов: email куда будут приходить уведомления о заканчивающемся сроке действия сертификата и предложат добавить TXT запись _acme-challenge в DNS. В общем все это будет выглядеть как то так:

certbot -d *.zobra.ru -d zobra.ru --manual --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for zobra.ru

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.zobra.ru with the following value:

qVPvtxQ5b05FZcZrcDaIwEs23PNg-RsOpgn92s9I2dA

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continuedig @8.8.8.8 -t txt _acme-challenge.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zobra.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/zobra.ru/privkey.pem
   Your cert will expire on 2020-02-13. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - 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

 

Стоит отметить что после обновления записей DNS перед продолжением нужно выждать 2-5 минут (возможно дольше) что бы запись распространилась.

TXT запись _acme-challenge в DNS

После того как certbot отработал, полученные сертификаты будут находиться здесь:

/etc/letsencrypt/live/zobra.ru

Здесь будут файлы cert.pem, chain.pem, fullchain.pem, privkey.pem, README

2) Настройка автопродления сертификатов

Тут всё просто, точнее даже очень просто.

Создаем исполняемый bash скрипт

nano /root/zobra-ssl-new.sh

следующего содержания:

#!/bin/bash
/usr/bin/certbot renew --post-hook "service nginx reload"

даем права на выполнение

chmod +x /root/zobra-ssl-new.sh

и размещаем его в crontab:

env EDITOR=nano crontab -e

добавляем запись

05 04 */7 * * /root/zobra-ssl-new.sh

Нажимаем Ctrl + O и нажимаем Enter.

В результате каждую неделю скрипт будет запускаться и проверять необходимость обновления сертификатов. В случае такой необходимости сертификаты автоматически будут обновлены и будет запущен хук обновляющий конфигурацию сервера nginx (в моём случае)

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.