Анкета для регистрации интернет-ресурса
В соответствии с Указом Президента Республики Беларусь № 60 от 01.02.2010г.
Техподдержка
Приложение support.by

E-mail: ticket@support.by

 

Портал > База знаний > SSL > Получение Let's Encrypt Wildcard-сертификата с валидацией через CloudFlare API


Получение Let's Encrypt Wildcard-сертификата с валидацией через CloudFlare API




Let's Encrypt поддерживает Wildcard-сертификаты, которые позволяют защищать все поддомены с помощью одного сертификата.

Получение Wildcard-сертификата возможно только через DNS challenge, где необходимо временно создать TXT записи вида _acme-challenge.example.com с определенным значением.

Let's Encrypt поставляет клиент под названием Certbot, который упрощает процесс создания, проверки, подписания, установки и продления сертификатов. Чтобы автоматически пройти DNS challenge уже есть несколько специальных Certbot-плагинов.

Переходим на сайт Certbot https://certbot.eff.org/, в левом верхнем углу выбираем certbot instructions, выбираем в выпадающем меню Software - none of the above и используемую на сервере операционную систему:


Переходим на вкладку Wildcard и следуем инструкциям установки:




В данном примере мы используем дистрибутив Debian Stretch, поэтому клиент Certbot и необходимый плагин есть в репозиториях дистрибутива. Устанавливаем:

# apt install certbot python3-certbot-dns-cloudflare

После установки запустим Certbot для создания им конфигурационных файлов:

# certbot

Для того, чтобы Сertbot мог получать Wildcard-сертификаты, нужно указать логин аккаунта CloudFlare и его API Key в конфигурационном файле.

Если у Вас еще не создан аккаунт на Cloudflare.com то Вы можете воспользоваться следующей статьей https://my.support.by/knowledgebase.php?action=displayarticle&id=132

После чего ввойдя в аккаунт на https://dash.cloudflare.com переходим в Профиль:




И далее на вкладку IP Tokens:



Нажимаем View напротив Global API Key:


Вводим пароль от аккаунта, проходим капчу, копируем API Key.

Создаем конфигурационный файл cloudflareapi.cfg в директории /etc/letsencrypt/ со следующим содержимым:

dns_cloudflare_email = <ваш CloudFlare логин>
dns_cloudflare_api_key = <ваш CloudFlare API Key>


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

# certbot certonly --cert-name example.com --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflareapi.cfg --server https://acme-v02.api.letsencrypt.org/directory -d "example.com,*.example.com"

Где example.com вам необходимо заменить своим доменом. Также один сертификат может быть создан для нескольких доменов, например если у вас несколько доменов по которым открывается сайт:

# certbot certonly --cert-name example.com --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflareapi.cfg --server https://acme-v02.api.letsencrypt.org/directory -d "example.com,*.example.com" -d "example.info,*.example.info"

После чего необходимо указать email, согласиться с условиями, поделиться своим электронным адресом с Electronic Frontier Foundation (можно ответить N). После чего Certbot сообщит об окончании процесса получения сертификата.

Сертификаты будут расположены в директории /etc/letsencrypt/live/example.com (здесь также будет имя вашего домена)

# ls /etc/letsencrypt/live/y example.com
cert.pem chain.pem fullchain.pem privkey.pem README

После чего вам нужно будет изменить конфигурационные файлы веб-сервера, чтобы указать на файлы сертификата.

Так как срок действия сертфикита от Let's Encrypt составляет 3 месяца, то настроим автоматическое продление:

# crontab -e

Добавляем следующую строчку в файл:

30 2 * * * certbot renew --noninteractive

Так как после продления сертификата потребуется перезагрузка веб-сервера, то в конфигурационный файл Certbot /etc/letsencrypt/renewal/example.com.conf добавим следующую строку:

renew_hook = systemctl reload nginx (в случае если у Вас используется nginx)



Помог ли вам данный ответ?

Добавить в избранное Добавить в избранное    Распечатать статью Распечатать статью

Также читают

Powered by WHMCompleteSolution