Обновлено руководство и скрипты: заменены примеры доменов и адресов NPM на example.com и 10.10.10.14

This commit is contained in:
Dmitriy Fofanov
2025-10-28 11:35:54 +03:00
parent b8fb4acfa8
commit 70c9932554
4 changed files with 39 additions and 39 deletions

View File

@@ -573,9 +573,9 @@ sudo nano /etc/letsencrypt/regru_config.json
{
"regru_username": "your_actual_username",
"regru_password": "your_actual_password",
"domain": "dfv24.com",
"domain": "example.com",
"wildcard": true,
"email": "admin@dfv24.com",
"email": "admin@example.com",
"cert_dir": "/etc/letsencrypt/live",
"log_file": "/var/log/letsencrypt_regru.log",
"dns_propagation_wait": 60,
@@ -597,9 +597,9 @@ sudo nano letsencrypt_regru_dns.sh
```bash
REGRU_USERNAME="your_actual_username"
REGRU_PASSWORD="your_actual_password"
DOMAIN="dfv24.com"
WILDCARD_DOMAIN="*.dfv24.com"
EMAIL="admin@dfv24.com"
DOMAIN="example.com"
WILDCARD_DOMAIN="*.example.com"
EMAIL="admin@example.com"
```
### 3. Установка прав доступа
@@ -719,12 +719,12 @@ sudo nano /etc/letsencrypt/regru_config.json
{
"regru_username": "ваш_логин_regru",
"regru_password": "ваш_пароль_regru",
"domain": "dfv24.com",
"domain": "example.com",
"wildcard": true,
"email": "admin@dfv24.com",
"email": "admin@example.com",
"npm_enabled": true,
"npm_host": "http://192.168.10.14:81",
"npm_host": "http://10.10.10.14:81",
"npm_email": "admin@example.com",
"npm_password": "changeme"
}
@@ -740,7 +740,7 @@ sudo python3 letsencrypt_regru_api.py -c /etc/letsencrypt/regru_config.json --ob
Откройте Nginx Proxy Manager → SSL Certificates
Ваш сертификат `*.dfv24.com` готов к использованию! 🎉
Ваш сертификат `*.example.com` готов к использованию! 🎉
**Что произошло:**
1. ✅ Создан wildcard сертификат через Let's Encrypt
@@ -770,13 +770,13 @@ sudo python3 letsencrypt_regru_api.py -c /etc/letsencrypt/regru_config.json --ob
| Параметр | Описание | Пример |
|----------|----------|--------|
| `npm_enabled` | Включить интеграцию с NPM | `true` или `false` |
| `npm_host` | URL адрес NPM | `http://192.168.10.14:81` |
| `npm_host` | URL адрес NPM | `http://10.10.10.14:81` |
| `npm_email` | Email для входа в NPM | `admin@example.com` |
| `npm_password` | Пароль администратора NPM | `changeme` |
#### 2. Получение учетных данных NPM
1. Войдите в Nginx Proxy Manager: `http://192.168.10.14:81`
1. Войдите в Nginx Proxy Manager: `http://10.10.10.14:81`
2. Используйте email и пароль администратора
3. По умолчанию:
- Email: `admin@example.com`
@@ -838,7 +838,7 @@ from letsencrypt_regru_api import NginxProxyManagerAPI
# Инициализация
npm_api = NginxProxyManagerAPI(
host="http://192.168.10.14:81",
host="http://10.10.10.14:81",
email="admin@example.com",
password="changeme",
logger=logger
@@ -851,10 +851,10 @@ npm_api.login()
certificates = npm_api.get_certificates()
# Поиск сертификата по домену
cert = npm_api.find_certificate_by_domain("dfv24.com")
cert = npm_api.find_certificate_by_domain("example.com")
# Синхронизация сертификата
npm_api.sync_certificate("dfv24.com", "/etc/letsencrypt/live/dfv24.com")
npm_api.sync_certificate("example.com", "/etc/letsencrypt/live/example.com")
```
#### API Endpoints
@@ -889,7 +889,7 @@ sudo python3 letsencrypt_regru_api.py -c config.json --obtain -v
2025-10-27 10:30:16 - DEBUG - Получение списка сертификатов из NPM...
2025-10-27 10:30:16 - DEBUG - Получено 3 сертификатов
2025-10-27 10:30:16 - INFO - Создание нового сертификата в NPM
2025-10-27 10:30:16 - INFO - Загрузка сертификата для dfv24.com в NPM...
2025-10-27 10:30:16 - INFO - Загрузка сертификата для example.com в NPM...
2025-10-27 10:30:17 - INFO - Сертификат успешно загружен в NPM (ID: 4)
2025-10-27 10:30:17 - INFO - Сертификат успешно добавлен в Nginx Proxy Manager
```
@@ -906,7 +906,7 @@ sudo python3 letsencrypt_regru_api.py -c config.json --obtain -v
**Решение:**
```bash
# Проверьте доступность NPM
curl http://192.168.10.14:81/api/
curl http://10.10.10.14:81/api/
# Проверьте учетные данные
# Войдите в NPM через браузер с теми же учетными данными
@@ -922,17 +922,17 @@ curl http://192.168.10.14:81/api/
**Решение:**
```bash
# Проверьте наличие файлов сертификата
ls -la /etc/letsencrypt/live/dfv24.com/
ls -la /etc/letsencrypt/live/example.com/
# Проверьте права доступа
sudo chmod 644 /etc/letsencrypt/live/dfv24.com/*.pem
sudo chmod 644 /etc/letsencrypt/live/example.com/*.pem
# Попробуйте вручную
sudo python3 -c "
from letsencrypt_regru_api import NginxProxyManagerAPI
import logging
logger = logging.getLogger()
npm = NginxProxyManagerAPI('http://192.168.10.14:81', 'admin@example.com', 'changeme', logger)
npm = NginxProxyManagerAPI('http://10.10.10.14:81', 'admin@example.com', 'changeme', logger)
npm.login()
print(npm.get_certificates())
"
@@ -978,7 +978,7 @@ sudo chown root:root /etc/letsencrypt/regru_config.json
2. **Используйте HTTPS для NPM** (если доступно)
```json
"npm_host": "https://192.168.10.14:443"
"npm_host": "https://10.10.10.14:443"
```
3. **Ограничьте доступ к API NPM**
@@ -995,7 +995,7 @@ sudo tail -n 50 /var/log/letsencrypt_regru.log | grep -i npm
#### В веб-интерфейсе NPM
1. Откройте NPM: `http://192.168.10.14:81`
1. Откройте NPM: `http://10.10.10.14:81`
2. Войдите в систему
3. Перейдите в **SSL Certificates**
4. Проверьте наличие сертификата для вашего домена
@@ -1005,13 +1005,13 @@ sudo tail -n 50 /var/log/letsencrypt_regru.log | grep -i npm
```bash
# Список сертификатов в NPM через API
curl -X POST http://192.168.10.14:81/api/tokens \
curl -X POST http://10.10.10.14:81/api/tokens \
-H "Content-Type: application/json" \
-d '{"identity":"admin@example.com","secret":"changeme"}' \
| jq -r '.token' > /tmp/npm_token
curl -H "Authorization: Bearer $(cat /tmp/npm_token)" \
http://192.168.10.14:81/api/nginx/certificates \
http://10.10.10.14:81/api/nginx/certificates \
| jq '.'
```
@@ -1214,10 +1214,10 @@ sudo systemctl status cron
```bash
# В начале crontab добавьте
MAILTO=admin@dfv24.com
MAILTO=admin@example.com
# Задача с уведомлениями
0 3 * * * /usr/bin/python3 /path/to/letsencrypt_regru_api.py -c /etc/letsencrypt/regru_config.json 2>&1 | mail -s "SSL Certificate Check - $(date)" admin@dfv24.com
0 3 * * * /usr/bin/python3 /path/to/letsencrypt_regru_api.py -c /etc/letsencrypt/regru_config.json 2>&1 | mail -s "SSL Certificate Check - $(date)" admin@example.com
```
---
@@ -1338,9 +1338,9 @@ curl -X POST "https://api.reg.ru/api/regru2/user/get_balance" \
- Проверьте DNS записи вручную:
```bash
nslookup -type=TXT _acme-challenge.dfv24.com
nslookup -type=TXT _acme-challenge.example.com
# или
dig TXT _acme-challenge.dfv24.com
dig TXT _acme-challenge.example.com
```
### Проблема: Certbot не установлен
@@ -1431,15 +1431,15 @@ certbot certonly --staging --dns-regru ...
sudo certbot certificates
# Просмотр конкретного сертификата
sudo openssl x509 -in /etc/letsencrypt/live/dfv24.com/cert.pem -text -noout
sudo openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout
# Проверка даты истечения
sudo openssl x509 -enddate -noout -in /etc/letsencrypt/live/dfv24.com/cert.pem
sudo openssl x509 -enddate -noout -in /etc/letsencrypt/live/example.com/cert.pem
```
### Проверка сертификата в браузере
1. Откройте ваш сайт в браузере: `https://dfv24.com`
1. Откройте ваш сайт в браузере: `https://example.com`
2. Нажмите на иконку замка в адресной строке
3. Проверьте информацию о сертификате
4. Убедитесь, что сертификат выдан Let's Encrypt и покрывает wildcard домен
@@ -1457,7 +1457,7 @@ sudo openssl x509 -enddate -noout -in /etc/letsencrypt/live/dfv24.com/cert.pem
### Вариант 1: Импорт существующего сертификата
1. Войдите в Nginx Proxy Manager: http://192.168.10.14:81/
1. Войдите в Nginx Proxy Manager: http://10.10.10.14:81/
2. Перейдите в **SSL Certificates** → **Add SSL Certificate**
3. Выберите **Custom**
4. Вставьте содержимое файлов:

View File

@@ -65,7 +65,7 @@ sudo ./letsencrypt_regru.sh
- Пароль
4. **Wildcard сертификат** - создавать ли `*.example.com` (рекомендуется: Да)
5. **Интеграция с NPM** (опционально):
- Адрес NPM (например, `http://192.168.10.14:81`)
- Адрес NPM (например, `http://10.10.10.14:81`)
- Email для входа в NPM
- Пароль NPM
@@ -175,7 +175,7 @@ sudo systemctl restart letsencrypt-regru.timer
"dns_check_interval": 10,
"renewal_days": 30,
"npm_enabled": true,
"npm_host": "http://192.168.10.14:81",
"npm_host": "http://10.10.10.14:81",
"npm_email": "admin@npm.local",
"npm_password": "secure_password"
}

View File

@@ -239,13 +239,13 @@ create_config() {
read -p "Включить интеграцию с Nginx Proxy Manager? (y/N): " -n 1 -r
echo ""
npm_enabled="false"
npm_host="http://192.168.10.14:81"
npm_host="http://10.10.10.14:81"
npm_email="admin@example.com"
npm_password="changeme"
if [[ $REPLY =~ ^[Yy]$ ]]; then
npm_enabled="true"
read -p "Введите адрес NPM (например, http://192.168.10.14:81): " npm_host
read -p "Введите адрес NPM (например, http://10.10.10.14:81): " npm_host
read -p "Введите email для входа в NPM: " npm_email
read -s -p "Введите пароль NPM: " npm_password
echo ""

View File

@@ -62,11 +62,11 @@ DEFAULT_CONFIG = {
"regru_password": "your_password",
# Параметры домена
"domain": "dfv24.com",
"domain": "example.com",
"wildcard": True, # Создавать wildcard сертификат (*.domain.com)
# Email для уведомлений Let's Encrypt
"email": "admin@dfv24.com",
"email": "admin@example.com",
# Директории
"cert_dir": "/etc/letsencrypt/live",
@@ -82,7 +82,7 @@ DEFAULT_CONFIG = {
# Настройки Nginx Proxy Manager
"npm_enabled": False, # Включить интеграцию с NPM
"npm_host": "http://192.168.10.14:81", # Адрес NPM
"npm_host": "http://10.10.10.14:81", # Адрес NPM
"npm_email": "admin@example.com", # Email для входа в NPM
"npm_password": "changeme", # Пароль NPM
}
@@ -310,7 +310,7 @@ class NginxProxyManagerAPI:
Инициализация API клиента NPM
Args:
host: URL адрес NPM (например, http://192.168.10.14:81)
host: URL адрес NPM (например, http://10.10.10.14:81)
email: Email для входа
password: Пароль
logger: Logger объект