Добавлены новые документы и инструкции по настройке, использованию и тестированию SSL сертификатов Let's Encrypt с использованием API reg.ru. Обновлены зависимости в requirements.txt для поддержки новых функций. Включены подробные шаги по автоматизации, созданию и продлению сертификатов, а также интеграции с Nginx Proxy Manager.

This commit is contained in:
Dmitriy Fofanov
2025-10-28 13:01:05 +03:00
parent 70c9932554
commit ed4531fa64
40 changed files with 4027 additions and 15 deletions

View File

@@ -0,0 +1,170 @@
# Автоматизация 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)
```bash
# 1. Отредактируйте конфигурацию в скрипте
nano letsencrypt_regru_dns.sh
# 2. Установите права
chmod +x letsencrypt_regru_dns.sh
# 3. Запустите
sudo ./letsencrypt_regru_dns.sh
```
### Linux (Python)
```bash
# 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)
```powershell
# 1. Создайте файл конфигурации config.json на основе config.json.example
# 2. Запустите скрипт
.\letsencrypt_regru.ps1 -ConfigFile .\config.json
```
## ⚙️ Конфигурация
Отредактируйте `config.json`:
```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)
```bash
# Добавьте в 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 не найден
```bash
# Ubuntu/Debian
sudo apt-get install certbot
# Или через snap
sudo snap install --classic certbot
```
## 📚 Документация
Подробная документация в файле [USAGE.md](USAGE.md)
## 🔐 Безопасность
- Храните учетные данные в безопасности
- Используйте `chmod 600` для конфигурационных файлов
- Регулярно обновляйте пароли
## ⚠️ Важно
- Let's Encrypt сертификаты действительны 90 дней
- Рекомендуется настроить автоматическое обновление
- Для wildcard сертификатов требуется DNS-валидация
## 📞 Поддержка
- [Документация reg.ru API](https://www.reg.ru/support/api)
- [Документация Let's Encrypt](https://letsencrypt.org/docs/)
- [Certbot Documentation](https://certbot.eff.org/docs/)
## 📄 Лицензия
Скрипты предоставляются "как есть" для свободного использования.
---
**Успешной автоматизации! 🔒**