Home » Создание wildcard сертификатов Let’s Encrypt с помощью Certbot
Создание wildcard сертификатов Let’s Encrypt с помощью Certbot

Создание wildcard сертификатов Let’s Encrypt с помощью Certbot

В этой статье разберёмся, как быстро и без боли получить wildcard сертификаты от Let’s Encrypt с помощью Certbot. Если ты когда-нибудь настраивал HTTPS для сайта, то наверняка сталкивался с вопросом: «А как быть, если у меня не один поддомен, а десятки, и все должны быть защищены?» Вот тут и приходят на помощь wildcard-сертификаты. Расскажу, как это работает, зачем оно нужно, и как всё это дело автоматизировать, чтобы не тратить время на рутину. Будет много практики, примеры, грабли, на которые наступал лично, и советы, как их обойти. В конце — выводы и рекомендации, чтобы ты мог сразу внедрять это на своих серверах, будь то VPS или выделенный сервер (кстати, если ищешь надёжный хостинг — VPS или dedicated — рекомендую).

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

Let’s Encrypt — это бесплатный центр сертификации, который позволяет выпускать SSL/TLS-сертификаты для доменов. Wildcard-сертификат — это такой сертификат, который действует сразу на все поддомены определённого домена (например, *.example.com). Это удобно, если у тебя, например, есть app.example.com, api.example.com, blog.example.com и так далее — не нужно получать отдельный сертификат для каждого.

Но есть нюанс: для выпуска wildcard-сертификата Let’s Encrypt требует подтверждения владения доменом через DNS (DNS-01 challenge). То есть, нужно добавить специальную TXT-запись в DNS-зону домена. Это чуть сложнее, чем HTTP-01 challenge (когда просто кладёшь файл на сервер), но зато открывает новые возможности для автоматизации.

Зачем это нужно и чем wildcard-сертификаты лучше обычных?

  • Экономия времени: Один сертификат — все поддомены. Не нужно каждый раз возиться с отдельной заявкой.
  • Автоматизация: Можно настроить скрипты, которые будут продлевать сертификаты без твоего участия.
  • Безопасность: Все сервисы на поддоменах сразу получают HTTPS, не забываешь ни про один.
  • Гибкость: Добавляешь новые поддомены — сертификат уже действует.

Как быстро и просто всё настроить?

Пошагово разберём, как получить wildcard-сертификат с помощью Certbot. Certbot — это официальный клиент Let’s Encrypt, который умеет автоматизировать процесс получения и продления сертификатов.

  1. Установить Certbot
    На большинстве Linux-дистрибутивов это делается одной командой:

    sudo apt update
    sudo apt install certbot

    Или, если нужен плагин для работы с DNS (например, для Cloudflare):

    sudo apt install python3-certbot-dns-cloudflare

    Список всех поддерживаемых DNS-провайдеров и плагинов — на официальном сайте Certbot.

  2. Подготовить доступ к DNS
    Для автоматизации нужен API-ключ от DNS-провайдера (например, Cloudflare, DigitalOcean, Yandex.Cloud и т.д.). Обычно это делается через создание токена в панели управления.
  3. Выпустить сертификат
    Пример для Cloudflare:

    export CLOUDFLARE_API_TOKEN="твой_токен"
    certbot certonly \
    --dns-cloudflare \
    --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
    -d "*.example.com" -d example.com

    Для других провайдеров меняется только плагин и путь к credentials-файлу.

    Если автоматизации нет — можно использовать --manual режим:


    certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com

    Certbot покажет TXT-запись, которую нужно добавить в DNS. После добавления — жмёшь Enter, и сертификат будет выпущен.

  4. Настроить автоматическое продление
    Добавь в cron:

    0 3 * * * certbot renew --quiet

    Если используешь DNS API — всё будет работать автоматически. Если вручную — придётся каждые 90 дней обновлять TXT-запись.

Примеры, схемы, практические советы

Сценарий Плюсы Минусы Рекомендации
Автоматизация через DNS API (Cloudflare, DigitalOcean и др.)
  • Всё автоматом: выпуск и продление
  • Без ручного вмешательства
  • Можно интегрировать в CI/CD
  • Нужен API-ключ
  • Не все DNS-провайдеры поддерживаются
  • Используй, если есть поддержка API
  • Храни ключи в защищённом месте
Ручной режим (manual)
  • Работает с любым DNS
  • Не нужен API-ключ
  • Каждые 90 дней — ручная работа
  • Можно забыть продлить
  • Используй только если нет другого выхода
  • Заведи напоминание в календаре
Обычные сертификаты (без wildcard)
  • Проще выпускать через HTTP-01
  • Не нужен доступ к DNS
  • Один сертификат — один домен/поддомен
  • Много рутины при большом количестве поддоменов
  • Используй для небольших проектов

Положительные и отрицательные кейсы

  • Положительный:

    У тебя SaaS-платформа, где каждый клиент получает свой поддомен (client1.example.com, client2.example.com). С wildcard-сертификатом ты не паришься — все поддомены сразу под защитой. Настроил автоматическое продление — и забыл.
  • Отрицательный:

    Используешь ручной режим, забываешь продлить сертификат — клиенты видят страшное предупреждение в браузере. Или: DNS-провайдер не поддерживает API, приходится каждый раз лезть в панель и добавлять TXT-запись.

Команды для разных сценариев

Вот полный список команд для популярных сценариев:

  • Cloudflare (автоматизация):

    sudo apt install python3-certbot-dns-cloudflare
    export CLOUDFLARE_API_TOKEN="твой_токен"
    certbot certonly \
    --dns-cloudflare \
    --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
    -d "*.example.com" -d example.com
  • DigitalOcean (автоматизация):

    sudo apt install python3-certbot-dns-digitalocean
    export DO_API_TOKEN="твой_токен"
    certbot certonly \
    --dns-digitalocean \
    --dns-digitalocean-credentials ~/.secrets/certbot/digitalocean.ini \
    -d "*.example.com" -d example.com
  • Ручной режим:

    certbot certonly --manual --preferred-challenges dns -d "*.example.com" -d example.com
  • Автоматическое продление:

    certbot renew --quiet

Похожие решения, альтернативы и утилиты

  • acme.sh — лёгкий bash-клиент для ACME-протокола, поддерживает кучу DNS-провайдеров, часто проще интегрируется в скрипты.
  • lego — кроссплатформенный ACME-клиент на Go, тоже умеет wildcard и автоматизацию через DNS.
  • Get HTTPS for free — ручной способ получить сертификат, если не хочется ставить ничего на сервер.

Статистика, сравнение с другими решениями

Клиент Язык Wildcards DNS API Автоматизация Документация
Certbot Python Да Да (через плагины) Да Отличная
acme.sh Bash Да Да (много провайдеров) Да Хорошая
lego Go Да Да Да Средняя

Интересные факты и нестандартные способы использования

  • Certbot можно запускать не только на сервере, где крутится сайт, но и на отдельной машине — главное, чтобы был доступ к DNS API.
  • Wildcard-сертификаты можно использовать для защиты внутренних сервисов (например, vpn.example.com, grafana.example.com), не публикуя их в интернет.
  • Можно интегрировать Certbot в CI/CD пайплайн — сертификаты будут выпускаться автоматически при деплое новых сервисов.
  • Certbot поддерживает хуки (hooks) — можно автоматически перезапускать nginx, apache или docker-контейнеры после обновления сертификата.

Какие новые возможности открываются и чем это поможет в автоматизации и скриптах?

  • Полная автоматизация HTTPS: Один раз настроил — и забыл. Сертификаты обновляются сами, сервисы всегда под защитой.
  • Масштабируемость: Добавляешь новые поддомены — не нужно ничего менять в сертификате.
  • Интеграция с DevOps: Можно встроить в ansible/playbook, docker-compose, kubernetes (через cert-manager).
  • Безопасность: Не хранишь приватные ключи на сторонних сервисах, всё генерируется локально.

Вывод — заключение и рекомендации

Wildcard-сертификаты Let’s Encrypt — это must-have для любого, кто работает с большим количеством поддоменов. Certbot — проверенный инструмент, который позволяет автоматизировать выпуск и продление сертификатов, особенно если твой DNS-провайдер поддерживает API. Если автоматизации нет — можно использовать ручной режим, но это вариант на крайний случай.

Рекомендую:

  • Использовать Certbot с DNS API-плагинами для полной автоматизации.
  • Хранить API-ключи в защищённых местах, не коммитить их в git.
  • Добавить автоматическое продление в cron и настроить хуки для перезапуска сервисов.
  • Если нужен хостинг для экспериментов — VPS или dedicated — отличный вариант для старта.
  • Не забывать про безопасность: wildcard-сертификат — это ключ ко всем поддоменам, не давай к нему доступ лишним людям.

Если хочется ещё больше гибкости — посмотри в сторону acme.sh или lego. Но для большинства задач Certbot — это золотой стандарт, поддерживаемый и хорошо документированный.

Внедряй, автоматизируй, экономь время и нервы. Если остались вопросы — пиши в комментарии, всегда рад помочь!


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

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked