Certbot DNS-01 плагин

Получайте TLS-сертификаты (Let's Encrypt или любой ACME CA) для зон, хостящихся на 1bytedns.ru — полностью автоматически через challenge DNS-01.

Что это?

certbot-dns-1bytedns — Python-плагин для certbot. Он получает TLS-сертификаты по challenge DNS-01 для зон, хостящихся на 1bytedns.ru: плагин создаёт и удаляет TXT-запись _acme-challenge.{domain} через существующий Client API — без новых эндпоинтов и без прямого доступа к базе данных.

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

1. certbot запрашивает у CA authorization. 2. Плагин находит вашу зону (точное имя, затем родительские домены) и проверяет, что она active (NS-верификация пройдена) и включена. 3. Создаёт TXT-запись с ключом валидации (идемпотентно). 4. После проверки записи CA в публичном DNS сертификат выпускается, а плагин удаляет TXT-запись.

Требования

  • Python 3.9+
  • certbot 2.0+ (проверено на 5.x)
  • Зона на 1bytedns со статусом active (NS-верификация пройдена) и включённая
  • API-токен с правами zones:read, records:read, records:edit (создаётся в веб-интерфейсе → API Tokens)

Установка

1. Скачайте архив (кнопка выше) и распакуйте его:

unzip certbot-dns-1bytedns-*.zip

2. Установите wheel:

pip install certbot_dns_1bytedns-*.whl

3. Проверьте, что certbot видит плагин:

certbot plugins
#   * dns-1bytedns

Использование

Создайте файл credentials с вашим API-токеном:

# /etc/1bytedns/certbot.ini
dns_1bytedns_api_token = abc123def456...

Ограничьте права на файл (иначе certbot предупредит):

install -m 600 /etc/1bytedns/certbot.ini

Выпустите сертификат:

certbot certonly --authenticator dns-1bytedns \
  --dns-1bytedns-credentials /etc/1bytedns/certbot.ini \
  -d example.com

Wildcard-сертификат:

certbot certonly --authenticator dns-1bytedns \
  --dns-1bytedns-credentials /etc/1bytedns/certbot.ini \
  -d '*.example.com'