Найти в Дзене
Сисадмин

Как настроить автоматический выпуск wildcard сертификатов?

Давай разберёмся, что такое wildcard-сертификаты, зачем они вообще нужны, и как прикрутить автоматическую магию, например, через Cloudflare, чтобы всё само работало, а ты пил чай и наслаждался жизнью. Wildcard-сертификат — это такой SSL-сертификат с суперспособностями. Он не только защищает твой домен, но и все его поддомены первого уровня, например: Один сертификат — много шифрованных голов.
Это удобно, экономно и не заставляет тебя плодить кучу отдельных сертов. А теперь самое интересное — чтобы выпустить wildcard-сертификат от Let's Encrypt, тебе нужно подтвердить владение доменом через DNS.
Конкретно: добавить специальную TXT-запись _acme-challenge.*
Вручную?
Лениво. А вот если ты: — тогда можно автоматизировать весь процесс, чтобы оно само продлевалось, а ты жил на чиле и раслабоне. sudo apt install certbot python3-certbot-dns-cloudflare mkdir -p ~/.secrets/certbot nano ~/.secrets/certbot/cloudflare.ini Вставь туда: dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN Защити:
Оглавление
Как настроить автоматический выпуск wildcard сертификатов?
Как настроить автоматический выпуск wildcard сертификатов?

Давай разберёмся, что такое wildcard-сертификаты, зачем они вообще нужны, и как прикрутить автоматическую магию, например, через Cloudflare, чтобы всё само работало, а ты пил чай и наслаждался жизнью.

Что такое wildcard-сертификат?

Wildcard-сертификат — это такой SSL-сертификат с суперспособностями. Он не только защищает твой домен, но и все его поддомены первого уровня, например:

  • www.mlhost.ru
  • ftp.mlhost.ru
  • vpn.mlhost.ru
  • да_хоть_бабушка.mlhost.ru

Один сертификат — много шифрованных голов.

Это удобно, экономно и не заставляет тебя плодить кучу отдельных сертов.

Как автоматизировать?

А теперь самое интересное — чтобы выпустить wildcard-сертификат от Let's Encrypt, тебе нужно подтвердить владение доменом через DNS.

Конкретно:
добавить специальную TXT-запись _acme-challenge.*

Вручную?

Лениво.

А вот если ты:

  • используешь Cloudflare как DNS-провайдера,
  • имеешь API-ключ,
  • и немножко умеешь читать инструкции,

— тогда можно автоматизировать весь процесс, чтобы оно само продлевалось, а ты жил на чиле и раслабоне.

Как это работает?

  1. Let's Encrypt говорит:
    "Докажи, что ты владеешь *.example.com."
  2. Ты через скрипт или Certbot:
    Логинишься в Cloudflare через API.
    Создаёшь TXT-запись _acme-challenge.example.com с нужным значением.
    Ждёшь минутку, чтобы DNS обновился.
  3. Let's Encrypt проверяет:
    "Ага, TXT-запись есть, ты хозяин!"
  4. Бац — и получаешь wildcard-сертификат на 3 месяца.
  5. Ставишь на автообновление (cron или systemd), и всё: магия происходит в фоне.

Как настроить автоматический выпуск (на примере certbot + cloudflare)

1. Установи certbot и нужный плагин

sudo apt install certbot python3-certbot-dns-cloudflare

2. Создай API-токен в Cloudflare

  • Иди в Cloudflare > My Profile > API Tokens.
  • Выбери шаблон Edit zone DNS.
  • Укажи нужный домен.
  • Скопируй токен, сохрани в безопасном месте.

3. Создай файл с токеном

mkdir -p ~/.secrets/certbot
nano ~/.secrets/certbot/cloudflare.ini

Вставь туда:

dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN

Защити:

chmod 600 ~/.secrets/certbot/cloudflare.ini

4. Выпусти wildcard-сертификат

sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
-d '*.example.com' -d example.com \
--agree-tos --email your@email.com --no-eff-email

5. Добавь автоматическое продление

sudo crontab -e

Добавь строку:

0 3 * * * certbot renew --quiet --deploy-hook "systemctl reload nginx"

(замени nginx на свой веб-сервер)

А что ты выигрываешь?

  • Один сертификат на все поддомены.
  • Не надо каждый раз руками добавлять TXT-записи.
  • Полностью автоматическое обновление.
  • Шифрование уровня «шапочка из фольги больше не нужна».

Закусочка

Применение?

  • Для хостинга сайтов на поддоменах (site1., site2. и т.д.)
  • Для multi-tenant приложений.
  • Для ленивых, но умных админов.
  • Чтобы твой Zabbix, Grafana, Nextcloud и еще десяток поддоменов были на HTTPS и без ошибок в браузере.