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

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

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

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

yum install certbot

Затем :

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

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

Let's Encrypt certbot

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

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

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

/etc/letsencrypt/livehome.grib69.ru/

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

После установки сертификата на сервер nginx обнаружил что забыл добавить сертификат корневого домена )) Сертификат *.home.grib69.ru/ естественно не подходит для home.grib69.ru/. Пришлось еще раз проделать данную процедуру с уже добавленным корневым доменом:

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

Здесь нас уже спрашивают «Мы хотим расширить существующий сертификат и заменить его новым?» (Do you want to expand and replace this existing certificate with the new certificate?) и после получения утвердительного ответа предлагает нам добавить вторую TXT запись _acme-challenge в DNS.

В общем добавляем, снова ждём пару минут и продолжает нажатием ENTER.

К слову, проверить разошлась ли запись можно командой dig, например так:

dig @8.8.8.8 -t txt _acme-challenge.grib69.ru

На выходе получим что то вроде этого:

Проверка записей с помощью dig

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

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

Создаем исполняемый bash скрипт следующего содержания:

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

и размещаем его по пути: /etc/cron.weekly

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

Обновление от 01.05.2019

Когда настал срок обновления сертификата, то он не обновился, вылезла следующая ошибка: «PluginError: An authentication script must be provided with –manual-auth-hook when using the manual plugin non-interactively.«

Как решить проблему и всё таки настроить автоматическое обновление сертификата читаем здесь: Автоматизация обновлений wildcard сертификата от Let’s Encrypt.

Установка бесплатного SSL wildcard сертификата Let’s Encrypt на CentOS 7 и автоматизация его обновлений: 1 комментарий

  1. Denis Noskov

    а как их добавить в vestacp панель так всё прошло удачно

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

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