Skip to content

andreymal/certbot-dns-sweb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 что-то изменил и плагин в принципе стал неработоспособен; тут уже ничего не поделать, кроме как пытаться чинить плагин.

About

SpaceWeb DNS authenticator plugin for Certbot

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published