Что это?
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'