Портал > База знаний > SSL > Получение 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