Files
configure_nginx_manager/docs/INSTALL_GUIDE.md
Dmitriy Fofanov 7c929bb5dc Обновлено руководство по использованию letsencrypt_regru.sh: добавлены шаги для автоматической установки и настройки приложения, а также улучшена структура документации.
Добавлен новый файл INSTALL_GUIDE.md с подробным описанием установки и использования.
Обновлен скрипт letsencrypt_regru.sh: добавлены функции для установки зависимостей, создания конфигурации и настройки systemd сервиса.
Созданы файлы systemd для автоматического обновления сертификатов: letsencrypt-regru.service и letsencrypt-regru.timer.
Обновлен файл README.md с новыми разделами и улучшенной структурой.
2025-10-28 10:25:10 +03:00

10 KiB
Raw Blame History

Руководство по использованию letsencrypt_regru.sh

Автор: Фофанов Дмитрий
Дата: 28.10.2025

Описание

letsencrypt_regru.sh - это автоматический установщик для Let's Encrypt Manager с интеграцией reg.ru и Nginx Proxy Manager.

Скрипт автоматизирует:

  • Установку всех системных зависимостей
  • Создание виртуального окружения Python
  • Установку Python библиотек (requests, cryptography, certbot)
  • Интерактивную настройку конфигурации
  • Создание и настройку systemd сервисов
  • Настройку автоматического обновления сертификатов

Требования

  • Linux (Debian/Ubuntu, CentOS/RHEL/Fedora)
  • Root доступ (sudo)
  • Минимум 512MB RAM
  • Минимум 1GB свободного места на диске
  • Интернет соединение

Быстрая установка

# 1. Скачайте репозиторий
git clone https://github.com/YOUR_USERNAME/configure_nginx_manager.git
cd configure_nginx_manager

# 2. Дайте права на выполнение
chmod +x letsencrypt_regru.sh

# 3. Запустите установку
sudo ./letsencrypt_regru.sh

Интерактивная настройка

Во время установки скрипт спросит:

  1. Домен - ваш основной домен (например, example.com)
  2. Email - для уведомлений Let's Encrypt
  3. Учетные данные reg.ru:
    • Имя пользователя
    • Пароль
  4. Wildcard сертификат - создавать ли *.example.com (рекомендуется: Да)
  5. Интеграция с NPM (опционально):
    • Адрес NPM (например, http://192.168.10.14:81)
    • Email для входа в NPM
    • Пароль NPM

Структура после установки

/opt/letsencrypt-regru/           # Приложение
├── letsencrypt_regru_api.py      # Основной скрипт
├── venv/                         # Виртуальное окружение Python
└── docs/                         # Документация

/etc/letsencrypt-regru/           # Конфигурация
└── config.json                   # Настройки (credentials, домен, NPM)

/var/log/letsencrypt-regru/       # Логи
└── letsencrypt_regru.log

/etc/letsencrypt/live/            # Сертификаты Let's Encrypt
└── example.com/
    ├── privkey.pem
    ├── cert.pem
    ├── chain.pem
    └── fullchain.pem

/etc/systemd/system/              # Systemd сервисы
├── letsencrypt-regru.service     # Сервис обновления
└── letsencrypt-regru.timer       # Таймер (каждые 12 часов)

/usr/local/bin/
└── letsencrypt-regru             # Глобальная команда

Использование команды letsencrypt-regru

После установки доступна удобная команда:

# Проверить срок действия текущего сертификата
letsencrypt-regru --check

# Получить новый сертификат Let's Encrypt
letsencrypt-regru --obtain

# Обновить существующий сертификат
letsencrypt-regru --renew

# Автоматически проверить и обновить при необходимости
letsencrypt-regru --auto

# Создать тестовый самоподписанный сертификат
letsencrypt-regru --test-cert

# Показать справку
letsencrypt-regru --help

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

Установщик настраивает systemd timer для автоматической проверки:

# Проверить статус таймера
systemctl status letsencrypt-regru.timer

# Когда следующий запуск
systemctl list-timers letsencrypt-regru.timer

# Посмотреть историю запусков
journalctl -u letsencrypt-regru

# Следить за логами в реальном времени
journalctl -u letsencrypt-regru -f

Настройки таймера

По умолчанию:

  • Первый запуск: через 15 минут после загрузки системы
  • Периодичность: каждые 12 часов
  • Случайная задержка: до 1 часа (чтобы не создавать нагрузку)

Изменить можно в /etc/systemd/system/letsencrypt-regru.timer.

Редактирование конфигурации

# Открыть конфигурацию в редакторе
sudo nano /etc/letsencrypt-regru/config.json

# После изменений перезапустите таймер
sudo systemctl restart letsencrypt-regru.timer

Пример config.json

{
    "regru_username": "your_username",
    "regru_password": "your_password",
    "domain": "example.com",
    "wildcard": true,
    "email": "admin@example.com",
    "cert_dir": "/etc/letsencrypt/live",
    "log_file": "/var/log/letsencrypt-regru/letsencrypt_regru.log",
    "dns_propagation_wait": 60,
    "dns_check_attempts": 10,
    "dns_check_interval": 10,
    "renewal_days": 30,
    "npm_enabled": true,
    "npm_host": "http://192.168.10.14:81",
    "npm_email": "admin@npm.local",
    "npm_password": "secure_password"
}

Обновление приложения

# Скачайте последнюю версию
cd configure_nginx_manager
git pull

# Запустите обновление
sudo ./letsencrypt_regru.sh update

Обновление:

  • Остановит таймер
  • Обновит скрипт
  • Обновит Python зависимости
  • Перезапустит таймер

Удаление

# Полное удаление приложения
sudo ./letsencrypt_regru.sh uninstall

Скрипт удалит:

  • Приложение из /opt/letsencrypt-regru/
  • Systemd сервисы
  • Глобальную команду

Сертификаты в /etc/letsencrypt/live/ сохраняются!

Опционально можно удалить:

  • Конфигурацию /etc/letsencrypt-regru/
  • Логи /var/log/letsencrypt-regru/

Просмотр логов

# Логи systemd (рекомендуется)
journalctl -u letsencrypt-regru -f

# Файл лога
tail -f /var/log/letsencrypt-regru/letsencrypt_regru.log

# Последние 100 строк
tail -n 100 /var/log/letsencrypt-regru/letsencrypt_regru.log

Устранение проблем

Проверка установки

# Проверить наличие команды
which letsencrypt-regru

# Проверить Python окружение
ls -la /opt/letsencrypt-regru/venv/

# Проверить systemd сервисы
systemctl list-unit-files | grep letsencrypt-regru

Ошибки при установке

Ошибка: "Permission denied"

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

Ошибка: "Package not found"

# Обновите списки пакетов
sudo apt-get update  # Debian/Ubuntu
sudo yum update      # CentOS/RHEL

Ошибка: "Python module not found"

# Переустановите виртуальное окружение
sudo rm -rf /opt/letsencrypt-regru/venv
sudo ./letsencrypt_regru.sh

Проблемы с сертификатами

Сертификат не создается

# Проверьте логи
tail -n 50 /var/log/letsencrypt-regru/letsencrypt_regru.log

# Проверьте конфигурацию
cat /etc/letsencrypt-regru/config.json

# Попробуйте вручную
letsencrypt-regru --obtain -v

DNS не обновляется

# Увеличьте время ожидания в config.json
"dns_propagation_wait": 120,
"dns_check_attempts": 20

Проблемы с NPM

Не загружается в NPM

# Проверьте доступность NPM
curl http://192.168.10.14:81

# Проверьте учетные данные в config.json
# Попробуйте вручную
letsencrypt-regru --test-cert -v

Поддерживаемые ОС

Debian 10, 11, 12
Ubuntu 20.04, 22.04, 24.04
CentOS 7, 8
RHEL 7, 8, 9
Fedora 35+

Дополнительные возможности

Тестовый сертификат

Для тестирования без лимитов Let's Encrypt:

letsencrypt-regru --test-cert

Создаст самоподписанный сертификат на 90 дней.

Ручной запуск обновления

# Запустить сервис вручную
sudo systemctl start letsencrypt-regru.service

# Посмотреть статус
systemctl status letsencrypt-regru.service

Изменить периодичность проверки

Отредактируйте /etc/systemd/system/letsencrypt-regru.timer:

[Timer]
# Каждые 6 часов вместо 12
OnUnitActiveSec=6h

Затем:

sudo systemctl daemon-reload
sudo systemctl restart letsencrypt-regru.timer

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

  • Конфигурация с паролями имеет права 600 (только root)
  • Приватные ключи сертификатов имеют права 600
  • Все операции выполняются от root
  • Логи доступны только root

Поддержка


Разработано: Фофанов Дмитрий
Дата: 28.10.2025
Версия: 2.0