Files
configure_nginx_manager/docs/ru/SSL_SCRIPTS_README.md

5.4 KiB
Raw Permalink Blame History

Автоматизация 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": "dfv24.com",
    "wildcard": true,
    "email": "admin@dfv24.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.168.10.14: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-валидация

📞 Поддержка

📄 Лицензия

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


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