LetsEncrypt: NIC RU DNS API часть 2

Была уже статья где использовалось приложение acme.sh, которое оказалось совершенно уебищным и работало когда ему хотелось. Также была сильная зависимость как от разработчика acme.sh так и от разработчика модуля для NIC.RU. Это уже не говоря о том, что скрипт слипал на целых 600 секунд.

Взяв все это во внимание решил накидать свое решение и уже полгода работает вообще без нареканий. Часть кода написана на golang, чтобы скрыть чувствительную информацию, а часть на python для ускорения разработки. Благо некий andr1an написал достаточно хорошую библиотеку на python для работы с DNS API РуЦентра за что ему огромное спасибо (даже помог решить проблему с поддержкой IPv6).

Приложение можно найти в этом репозитории. Не задает вопросов при запусках. Слипает по-умолчанию на 120 секунд. Поддерживает любой уровень вложенности домена (будь-то *.example.com или *.stuff.example.com и т.д.). Умеет тестировать и перезапускать веб-сервер. Умеет работать как с SMTP клиентом так и с SMTP сервером. Имеет POSTHOOK для запуска скриптов после того как сертификаты были выписаны успешно. Запускал на Linux и FreeBSD - работает, на Windows не проверял. Скорее всего не заработает из-за отсутствия поддержки SHELL'а, а по поводу macOS затрудняюсь ответить поскольку там вроде есть /bin/sh и значит есть все шаны что заработает. Также есть версия для регистратора GoDaddy.

Показать комментарии