GalaxyData Community

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

Let's Encrypt Wildcard

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 (в моём случае)

Exit mobile version