Files
configure_nginx_manager/wiki/Home.md
Dmitriy Fofanov 08cf094827 Обновление документации по устранению неполадок и тестированию API RegRu
- Улучшена структура и содержание руководства по устранению неполадок API RegRu для большей ясности и согласованности.

- Документация по тестированию улучшена за счет подробных инструкций и сравнения методов тестирования.

- Улучшено форматирование и читаемость обоих документов.

- Обновлена ​​боковая навигация для лучшего доступа к разделам документации.
2026-02-25 14:41:57 +03:00

14 KiB
Raw Blame History

SSL Certificate Manager (Let's Encrypt + reg.ru) — Wiki (RU)

Это Wiki проекта configure_nginx_manager: автоматическое получение и продление SSL сертификатов Let's Encrypt через DNS-01 (API reg.ru) с опциональной синхронизацией сертификатов в Nginx Proxy Manager (NPM).

Что умеет проект

  • Получение production сертификатов Let's Encrypt (DNS-01) для доменов reg.ru
  • Поддержка wildcard (например, *.example.com)
  • Автопроверка и автопродление (cron/systemd)
  • Диагностика: --test-api, --test-dns
  • Тестовые самоподписанные сертификаты для разработки: --test-cert (без лимитов LE)
  • (Опционально) Автозагрузка/обновление сертификатов в NPM по API
  • Мультидоменный режим: один конфиг → несколько доменов (domains[])

Быстрый старт

  1. Установка
  1. Конфигурация
  1. Проверка доступа к API и DNS
  • letsencrypt-regru --test-api -v
  • letsencrypt-regru --test-dns -v
  1. Тестирование без лимитов
  • letsencrypt-regru --test-cert
  1. Production сертификат
  • letsencrypt-regru --obtain
  1. Автопродление
  • letsencrypt-regru --auto (обычно запускается systemd timer'ом)

Навигация

Примечания по лимитам Let's Encrypt

  • Production: обычно до 5 сертификатов/неделю на домен
  • Для отладки автоматизации используйте:
    • --staging (LE staging, без лимитов)
    • --test-cert (самоподписанный, мгновенно)

Источник: страницы Wiki этого репозитория и актуальное поведение CLI.


Appendix (migrated from docs/DESCRIPTION.md)

🔒 SSL Certificate Manager для Let's Encrypt + reg.ru

Автоматическое управление SSL сертификатами Let's Encrypt с DNS валидацией через API reg.ru и интеграцией с Nginx Proxy Manager

📖 Описание

Комплексное решение для автоматизации создания, обновления и управления SSL сертификатами Let's Encrypt для доменов, зарегистрированных на reg.ru. Поддерживает DNS-01 валидацию, wildcard сертификаты, автоматическую загрузку в Nginx Proxy Manager и генерацию тестовых сертификатов для разработки.

Основные возможности

  • 🔐 Автоматическое получение SSL сертификатов через Let's Encrypt
  • 🌐 DNS-01 валидация через API reg.ru (поддержка wildcard доменов)
  • 🔄 Автоматическое обновление сертификатов с настраиваемым порогом
  • 📦 Интеграция с Nginx Proxy Manager - автоматическая загрузка и обновление
  • 🧪 Тестовые сертификаты - обход лимитов Let's Encrypt (5 в неделю)
  • ⚙️ Полная автоматизация через systemd/cron
  • 🔀 Синхронизация репозиториев - автоматическая синхронизация Gitea → GitHub

🚀 Быстрый старт

## Установка через Makefile
sudo make install

## Настройка конфигурации
sudo nano /etc/letsencrypt/regru_config.json

## Создание тестового сертификата (без лимитов)
sudo make test-cert

## Получение production сертификата
sudo make obtain

📋 Требования

  • ОС: Linux (Ubuntu/Debian/CentOS)
  • Python: 3.6+
  • Зависимости: certbot, requests, cryptography
  • API: reg.ru (доступ к DNS управлению)
  • Опционально: Nginx Proxy Manager

🎯 Сценарии использования

  • Автоматизация SSL сертификатов для web серверов
  • Централизованное управление через Nginx Proxy Manager
  • Тестирование и разработка с самоподписанными сертификатами
  • CI/CD интеграция
  • Мультидоменные конфигурации с wildcard

📚 Документация


📖 Description (English)

Automated Let's Encrypt SSL Certificate Manager with DNS validation via reg.ru API and Nginx Proxy Manager integration

Comprehensive solution for automating the creation, renewal, and management of Let's Encrypt SSL certificates for domains registered with reg.ru. Supports DNS-01 validation, wildcard certificates, automatic upload to Nginx Proxy Manager, and test certificate generation for development.

Key Features

  • 🔐 Automatic SSL certificate issuance via Let's Encrypt
  • 🌐 DNS-01 validation via reg.ru API (wildcard domain support)
  • 🔄 Automatic renewal with configurable threshold
  • 📦 Nginx Proxy Manager integration - automatic upload and update
  • 🧪 Test certificates - bypass Let's Encrypt rate limits (5 per week)
  • ⚙️ Full automation via systemd/cron
  • 🔀 Repository sync - automatic Gitea → GitHub synchronization

🚀 Quick Start

## Install via Makefile
sudo make install

## Configure
sudo nano /etc/letsencrypt/regru_config.json

## Create test certificate (no limits)
sudo make test-cert

## Get production certificate
sudo make obtain

📋 Requirements

  • OS: Linux (Ubuntu/Debian/CentOS)
  • Python: 3.6+
  • Dependencies: certbot, requests, cryptography
  • API: reg.ru (DNS management access)
  • Optional: Nginx Proxy Manager

🎯 Use Cases

  • SSL certificate automation for web servers
  • Centralized management via Nginx Proxy Manager
  • Development and testing with self-signed certificates
  • CI/CD integration
  • Multi-domain configurations with wildcards

📚 Documentation


👤 Автор / Author

Фофанов Дмитрий @ 2025

📄 Лицензия / License

Open Source - Free to use

🤝 Вклад / Contributing

Pull requests приветствуются / Pull requests are welcome!


Appendix (migrated from docs/SSL_SCRIPTS_README.md)

Автоматизация SSL сертификатов Let's Encrypt для reg.ru

Набор скриптов для автоматического создания и обновления SSL сертификатов Let's Encrypt с использованием DNS валидации через API reg.ru.

📁 Содержимое проекта

  • letsencrypt_regru_dns.sh - Bash скрипт (Linux) с certbot-dns-regru
  • letsencrypt_regru_api.py - Python скрипт с прямым API интеграцией
  • letsencrypt_regru.ps1 - PowerShell скрипт (Windows)
  • config.json.example - Пример файла конфигурации
  • USAGE.md - Подробная инструкция по использованию

🚀 Быстрый старт

Linux (Bash)

## 1. Отредактируйте конфигурацию в скрипте
nano letsencrypt_regru_dns.sh

## 2. Установите права
chmod +x letsencrypt_regru_dns.sh

## 3. Запустите
sudo ./letsencrypt_regru_dns.sh

Linux (Python)

## 1. Создайте конфигурацию
sudo python3 letsencrypt_regru_api.py --create-config /etc/letsencrypt/regru_config.json

## 2. Отредактируйте конфигурацию
sudo nano /etc/letsencrypt/regru_config.json

## 3. Получите сертификат
sudo python3 letsencrypt_regru_api.py -c /etc/letsencrypt/regru_config.json --obtain

Windows (PowerShell)

## 1. Создайте файл конфигурации config.json на основе config.json.example

## 2. Запустите скрипт
.\letsencrypt_regru.ps1 -ConfigFile .\config.json

⚙️ Конфигурация

Отредактируйте config.json:

{
    "regru_username": аш_логин",
    "regru_password": аш_пароль",
    "domain": "example.com",
    "wildcard": true,
    "email": "admin@example.com"
}

📋 Требования

Linux

  • certbot
  • Python 3.6+
  • pip3
  • requests, cryptography (Python модули)
  • certbot-dns-regru (опционально)

Windows

  • certbot
  • PowerShell 5.1+
  • openssl (для проверки сертификатов)

🔄 Автоматическое обновление

Через cron (Linux)

## Добавьте в crontab
sudo crontab -e

## Проверка каждый день в 3:00
0 3 * * * /usr/bin/python3 /path/to/letsencrypt_regru_api.py -c /etc/letsencrypt/regru_config.json

Через Task Scheduler (Windows)

  1. Откройте Task Scheduler
  2. Создайте новую задачу
  3. Триггер: Ежедневно в 3:00
  4. Действие: Запуск PowerShell скрипта

📖 Функции

Создание wildcard сертификатов (*.domain.com)
Автоматическая DNS валидация через API reg.ru
Проверка срока действия сертификата
Автоматическое обновление перед истечением
Перезагрузка веб-сервера после обновления
Подробное логирование всех операций

🔧 Использование с Nginx Proxy Manager

После получения сертификата:

  1. Войдите в NPM: http://192.0.2.1:81/
  2. SSL Certificates → Add SSL Certificate → Custom
  3. Вставьте содержимое:
    • Certificate Key: /etc/letsencrypt/live/domain.com/privkey.pem
    • Certificate: /etc/letsencrypt/live/domain.com/fullchain.pem

📝 Логи

  • Bash: /var/log/letsencrypt_regru.log
  • Python: /var/log/letsencrypt_regru.log
  • PowerShell: .\letsencrypt_regru.log
  • Certbot: /var/log/letsencrypt/letsencrypt.log

🆘 Устранение неполадок

Ошибка аутентификации API

  • Проверьте учетные данные reg.ru
  • Убедитесь, что домен под вашим управлением

DNS запись не распространяется

  • Увеличьте dns_propagation_wait до 120 секунд
  • Проверьте DNS: nslookup -type=TXT _acme-challenge.domain.com

Certbot не найден

## Ubuntu/Debian
sudo apt-get install certbot

## Или через snap
sudo snap install --classic certbot

📚 Документация

Подробная документация в файле USAGE.md

🔐 Безопасность

  • Храните учетные данные в безопасности
  • Используйте chmod 600 для конфигурационных файлов
  • Регулярно обновляйте пароли

⚠️ Важно

  • Let's Encrypt сертификаты действительны 90 дней
  • Рекомендуется настроить автоматическое обновление
  • Для wildcard сертификатов требуется DNS валидация

📞 Поддержка

📄 Лицензия

Скрипты предоставляются "как есть" для свободного использования.


Успешной автоматизации! 🔒