Главная » Хабрахабр » [Из песочницы] Настройка Let’s Encrypt wildcard-сертификатов в CentOS 7 с валидацией через CloudFlare API

[Из песочницы] Настройка Let’s Encrypt wildcard-сертификатов в CentOS 7 с валидацией через CloudFlare API

Как и многие, я давно ждал возможности получения wildcard-сертификатов от Let's Encrypt. И вот момент настал, а мануала на хабре так и нет. Ну что ж, попробуем исправить это.
Это наиболее упрощенный мануал по настройке wildcard-сертификатов от Let's Encrypt.
Вместо CloudFlare можете использовать другой сервис, т.к. плагины есть в репозитории EPEL.

Установка certbot и плагинов

Нам нет смысла ставить последнюю версию certbot с github, т.к. нужный нам функционал появился еще в версии 0.22.

Для установки certbot и его плагинов нужно подключить репозиторий EPEL.

sudo yum install epel-release -y

После чего запустить установку certbot.

sudo yum install certbot -y

И затем установить CloudFlare плагин для certbot.

sudo yum install python2-cloudflare.noarch python2-certbot-dns-cloudflare.noarch -y

Если вы используете другой сервис, найдите его плагин при помощи yum, например для digitalocean yum list *digitalocean*

Запустите certbot один раз для создания конфигов.

sudo certbot

Настройка CloudFlare API

Для того, чтобы certbot мог автоматом продливать wildcard-сертификаты, нужно указать логин аккаунта CloudFlare и его API Key в конфиге.

Логинимся в свой CloudFlare аккаунт и заходим в профиль

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

Вводим пароль от аккаунта, проходим капчу и снова жмем View

Копируем свой API Key

Создаем файл cloudflareapi.cfg в директории /etc/letsencrypt при помощи редактора (например nano):

sudo nano /etc/letsencrypt/cloudflareapi.cfg

И пишем в нём следующее:

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

вы используете Let's Encrypt вам должно быть все равно. АХТУНГ! Данный способ хранения API Key небезопасен, но т.к.

По крайней мере, можете прописать sudo chmod 600 /etc/letsencrypt/cloudflareapi.cfg для ограничения доступа на чтение.

Создание сертификата

В отличии от других способов валидации, здесь сертификат создается легко и быстро. Вместо example.org укажите свой домен.

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

При первом запуске certbot может запросить у вас email-адрес для доставки уведомлений, согласиться с ToS (выбрать A) и одобрить получение спама (выбрать N).

Вот и всё, в случае успеха вы увидите что-то вроде этого

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.org/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.org/privkey.pem Your cert will expire on 2018-07-21. 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

Нужный вам сертификат fullchain.pem будет находится в директории /etc/letsencrypt/live/example.org.

Настройка веб-сервера

мой кусок конфига вряд ли подойдет вам. Я не буду здесь описывать настройку веб-сервера, т.к.

Вы сами должны найти настройку SSL для вашей версии веб-сервера и CMS.

Продление сертификата

Все созданные сертификаты продливаются при помощи certbot.

sudo certbot renew

Собственно, открываем /etc/crontab.

sudo nano /etc/crontab

И добавляем строчку.

0 4 * * 2 root certbot renew

Которая означает, что каждый вторник в 4 часа проверять актуальность сертификатов через certbot.

Так же, сюда следует добавить рестарт веб-сервера, который будет использовать данный сертификат, например nginx:

10 4 * * 2 root systemctl restart nginx

Заключение

Настройка простая, но забыть её довольно легко. Поэтому сохраняйте в закладки.

Данный мануал предназначен в первую очередь для энтузиастов под свой сервер или под небольшие проекты, поэтому здесь нет особого внимания к безопасности или дополнительным настройкам.


Оставить комментарий

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

*

x

Ещё Hi-Tech Интересное!

«Ваша игра скучная», или как поднять уже и так высокий Retention первого дня

Под глубоким UX я понимаю комплекс мер, который направлен на работу не только с такими привычными вещами, как информативность, предсказуемость и удобство, но и с такими субъективными, как эмоциональное вовлечение и удержание.Эта история началась с собеседования с кандидатом в разработчики ...

Ускоряем bootstrap больших баз данных с помощью Kubernetes

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