An open API service indexing awesome lists of open source software.

https://github.com/andreymal/certbot-dns-sweb

SpaceWeb DNS authenticator plugin for Certbot
https://github.com/andreymal/certbot-dns-sweb

certbot certbot-dns-authenticator certbot-plugin letsencrypt spaceweb wildcard-certificates

Last synced: 2 months ago
JSON representation

SpaceWeb DNS authenticator plugin for Certbot

Awesome Lists containing this project

README

          

# certbot-dns-sweb

Плагин для Certbot, который реализует проверку DNS-01 и позволяет получить
wildcard-сертификаты Let's Encrypt для доменов, которые обслуживает
SpaceWeb (https://sweb.ru/).

Основан на непубличном API, который используется в веб-панели SpaceWeb,
поэтому всё может сломаться в любой момент, никаких гарантий нет, используйте
на свой страх и риск. Если сломается — пинайте кого-нибудь по этому поводу,
может даже кто-нибудь починит.

## Установка

Установите плагин в том же окружении, в котором установлен Certbot.

pip install git+https://github.com/andreymal/certbot-dns-sweb.git

Если `certbot` установлен глобально в системе, то придётся в ней помусорить
(и, возможно, добавить опцию `--break-system-packages`, но если Certbot
уже установлен, то ничего сломаться не должно, так как плагин не имеет
дополнительных зависимостей).

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

Первым делом рекомендуется зайти в панель управления SpaceWeb и, если такая
возможность на вашем аккаунте есть, создать дополнительный ограниченный
аккаунт, у которого будет доступ только к доменам (Аккаунт → Профиль →
Пользователи). Вам выдадут логин вида `subname@username`, который нужно будет
прописать в файле настроек вместо вашего обычного логина.

Создайте текстовый файл где-нибудь (например `/etc/letsencrypt/sweb.ini`)
и запишите туда логин и пароль, а также юзер-агент по вкусу:

dns_sweb_username = логин
dns_sweb_password = correcthorsebatterystaple
dns_sweb_user_agent = "Mozilla/5.0 definitely-not-a-robot/999.99"
dns_sweb_drop_old_txt = 1

Опция `drop_old_txt` включает удаление старых записей `_acme-challenge`,
так как они могут мешать проверке.

Не забудьте ограничить доступ на чтение посторонними:

chmod 600 /etc/letsencrypt/sweb.ini

Запросите сертификат с нужными вам настройками (в примере `certonly`,
не забудьте отредактировать команду на свой вкус):

certbot certonly -a dns-sweb \
--dns-sweb-credentials /etc/letsencrypt/sweb.ini \
-d "example.ru" -d "*.example.ru"

Плагин создаст TXT-записи `_acme-challenge`, после чего придётся подождать
20 минут (меньшее ожидание работало нестабильно), пока у всех DNS-серверов
почистятся кэши. После этого вы получите wildcard-сертификат, если ничего
не сломалось. Созданные записи будут автоматически удалены после получения
сертификата.

Если вы получите ошибку «Incorrect TXT record», есть следующие варианты:

- возможно, кэши DNS так и не успели почиститься, тогда можно изменить время
ожидания опцией `--dns-sweb-propagation-seconds 1800` (указывается
в секундах);

- вы не включили опцию `drop_old_txt`, у вас остались какие-то старые
DNS-записи `_acme-challenge` и они мешаются; удалите их вручную в панели
управления и попробуйте снова;

- SpaceWeb что-то изменил и плагин в принципе стал неработоспособен; тут уже
ничего не поделать, кроме как пытаться чинить плагин.