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
- Host: GitHub
- URL: https://github.com/andreymal/certbot-dns-sweb
- Owner: andreymal
- License: mit
- Created: 2020-03-05T18:45:13.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-14T01:15:41.000Z (almost 2 years ago)
- Last Synced: 2024-08-14T03:13:24.940Z (almost 2 years ago)
- Topics: certbot, certbot-dns-authenticator, certbot-plugin, letsencrypt, spaceweb, wildcard-certificates
- Language: Python
- Size: 20.5 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
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 что-то изменил и плагин в принципе стал неработоспособен; тут уже
ничего не поделать, кроме как пытаться чинить плагин.