Пакет shell-скриптов для ручного обновления сертификатов certbot с использованием DNS-провайдера Reg.ru
Данные скрипты необходимы в случаях, когда домен для которого выпускаются сертификаты скрыт за VPN и недоступен из публичной сети. Есть поддержка отправки уведомлений в Telegram.
ВАЖНО Укажите свои креды в файле ./example.conf
- acme-notify.sh — хелпер отправляющий уведомления в телеграм
- deploy-success.sh — хук, вызывающийся после успешного обновления сертификата
- manual-cert-renew.sh — ручное обновление сертификата
- regru-auth.sh — основной хук, выполняющий авторизацию и добавление записей через API Reg.ru
- regru-cleanup.sh — хук, подчищающий записи, использованные для выпуска сертификатов
- remove-txt.sh — ручное удаление всех TXT записей (может пригодиться для чистки при неудачном обновлении)
- example.conf — файл с кредами для доступа к API Reg.ru
Для автоматического управления TXT-записями рекомендуется вместо основоного пароля от аккаунта Reg.ru выпустить "альтернативный API-пароль" в настройках API, а также ограничить список IP с которых можно использовать апишку.
git clone https://github.com/Gratio-tech/CertbotManual.git /opt/CertbotManual
chmod +x /opt/CertbotManual/*.sh && chmod 600 /opt/CertbotManual/example.conf
# Первичный выпуск сертификата, а также ручной перевыпуск
/opt/CertbotManual/manual-cert-renew.shЕсли позже перенести репу, Certbot сохранит hook-пути в renewal config. Например:
manual_auth_hook = /opt/CertbotManual/regru-auth.sh
Если потом перенесёшь репу в /root/CertbotManual автообновление через certbot renew будет пытаться
запускать старый путь /opt/CertbotManual/... и упадёт.
После переноса надо либо перезапустить manual-cert-renew.sh, либо руками поправить:
nano /etc/letsencrypt/renewal/your.domen.conf