Добавлены новые документы и инструкции по настройке, использованию и тестированию 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

263
docs/ru/CHEATSHEET.md Normal file
View File

@@ -0,0 +1,263 @@
# ⚡ Шпаргалка по SSL сертификатам
## 🚀 Быстрый старт
### Установка за 3 команды
```bash
sudo make install
sudo nano /etc/letsencrypt/regru_config.json # Заполнить данные
sudo make test-cert # Тест
```
---
## 🧪 Тестирование (БЕЗ лимитов Let's Encrypt)
```bash
# Создать тестовый сертификат (неограниченно)
sudo make test-cert
# Проверить статус
sudo make status
# Просмотреть логи
sudo make logs
```
**Когда использовать:**
- ⚠️ Let's Encrypt: макс. 5 сертификатов/неделю
- ✅ Тестовые: НЕОГРАНИЧЕННО
- ⚡ Создание: 1-2 секунды vs 2-5 минут
---
## 🔒 Production (Let's Encrypt)
```bash
# Получить настоящий сертификат
sudo make obtain
# Автоматический режим (проверка + обновление)
sudo make run
# Принудительное обновление
sudo make renew
```
---
## 📋 Основные команды
| Команда | Описание | Лимиты |
|---------|----------|--------|
| `make test-cert` | Тестовый сертификат | ✅ Нет |
| `make obtain` | Let's Encrypt новый | ⚠️ 5/неделю |
| `make renew` | Обновить существующий | ⚠️ 5/неделю |
| `make run` | Авто-режим | ⚠️ 5/неделю |
| `make status` | Статус системы | - |
| `make logs` | Показать логи | - |
| `make check-config` | Проверить конфигурацию | - |
---
## 📝 Конфигурация
### Минимальная (тестирование)
```json
{
"domain": "test.example.com",
"wildcard": true,
"cert_dir": "/etc/letsencrypt/live"
}
```
### Полная (production + NPM)
```json
{
"regru_username": "myuser",
"regru_password": "mypassword",
"domain": "example.com",
"wildcard": true,
"email": "admin@example.com",
"renewal_days": 30,
"npm_enabled": true,
"npm_host": "https://npm.example.com",
"npm_email": "admin@example.com",
"npm_password": "npm_password"
}
```
---
## 🔄 Workflow
### Разработка → Production
```bash
# 1. Разработка (тестовые сертификаты)
sudo make test-cert # Создать тестовый
# Тестировать приложение...
# 2. Production (Let's Encrypt)
sudo rm -rf /etc/letsencrypt/live/example.com/ # Удалить тест
sudo make obtain # Создать production
```
---
## 📁 Важные пути
```bash
# Конфигурация
/etc/letsencrypt/regru_config.json
# Сертификаты
/etc/letsencrypt/live/example.com/
├── privkey.pem # Приватный ключ
├── cert.pem # Сертификат
├── fullchain.pem # Полная цепочка (для nginx)
└── chain.pem # CA цепочка
# Скрипты
/opt/letsencrypt-regru/letsencrypt_regru_api.py
# Логи
/var/log/letsencrypt_regru.log
```
---
## 🔍 Проверка
```bash
# Проверить конфигурацию
sudo make check-config
# Проверить сертификат
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout
# Проверить срок действия
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -dates
# Проверить systemd
sudo systemctl status letsencrypt-regru.timer
sudo systemctl list-timers letsencrypt-regru.timer
# Проверить cron
sudo crontab -l | grep letsencrypt
```
---
## 🐛 Отладка
```bash
# Подробные логи
sudo make logs
# Тестовый запуск с подробностями
sudo python3 /opt/letsencrypt-regru/letsencrypt_regru_api.py \
-c /etc/letsencrypt/regru_config.json --check -v
# Логи certbot
sudo tail -f /var/log/letsencrypt/letsencrypt.log
# Логи systemd
sudo journalctl -u letsencrypt-regru.service -f
```
---
## ⚠️ Частые ошибки
### Let's Encrypt: Rate limit exceeded
```bash
# РЕШЕНИЕ: Используйте тестовые сертификаты
sudo make test-cert
```
### NPM: Certificate not found
```bash
# РЕШЕНИЕ: Проверьте настройки NPM
sudo make check-config
# Проверьте подключение
curl -k https://npm.example.com
```
### Permission denied
```bash
# РЕШЕНИЕ: Запускайте с sudo
sudo make test-cert
```
---
## 🎯 Сценарии использования
### Локальная разработка
```bash
sudo make test-cert
# Открыть https://localhost (игнорировать предупреждение)
```
### CI/CD тестирование
```bash
# В pipeline
sudo make test-cert
# Запустить тесты...
sudo make status
```
### Staging окружение
```bash
sudo make test-cert # Или
sudo make obtain # Если есть домен
```
### Production окружение
```bash
sudo make install
sudo make obtain
# Автоматическое обновление через cron/systemd
```
---
## 📚 Документация
- **README.md** - Полное руководство (1420+ строк)
- **TESTING_GUIDE.md** - Тестирование (370+ строк)
- **PROJECT_STRUCTURE.md** - Структура проекта
- **CHEATSHEET.md** - Эта шпаргалка
---
## 🆘 Быстрая помощь
```bash
# Показать все команды
make help
# Проверить установку
sudo make status
# Полная переустановка
sudo make uninstall
sudo make install
```
---
## 💡 Советы
1. **Всегда начинайте с тестовых сертификатов** - избегайте лимитов
2. **Проверяйте конфигурацию** - `make check-config`
3. **Мониторьте логи** - `make logs`
4. **Автоматизируйте** - systemd/cron уже настроены
5. **Храните бэкапы** конфигурации
---
**Версия**: 2.1
**Обновлено**: 27.10.2025