Обновлено руководство и скрипты: заменены примеры доменов и адресов NPM на example.com и 10.10.10.14
This commit is contained in:
62
README.md
62
README.md
@@ -573,9 +573,9 @@ sudo nano /etc/letsencrypt/regru_config.json
|
|||||||
{
|
{
|
||||||
"regru_username": "your_actual_username",
|
"regru_username": "your_actual_username",
|
||||||
"regru_password": "your_actual_password",
|
"regru_password": "your_actual_password",
|
||||||
"domain": "dfv24.com",
|
"domain": "example.com",
|
||||||
"wildcard": true,
|
"wildcard": true,
|
||||||
"email": "admin@dfv24.com",
|
"email": "admin@example.com",
|
||||||
"cert_dir": "/etc/letsencrypt/live",
|
"cert_dir": "/etc/letsencrypt/live",
|
||||||
"log_file": "/var/log/letsencrypt_regru.log",
|
"log_file": "/var/log/letsencrypt_regru.log",
|
||||||
"dns_propagation_wait": 60,
|
"dns_propagation_wait": 60,
|
||||||
@@ -597,9 +597,9 @@ sudo nano letsencrypt_regru_dns.sh
|
|||||||
```bash
|
```bash
|
||||||
REGRU_USERNAME="your_actual_username"
|
REGRU_USERNAME="your_actual_username"
|
||||||
REGRU_PASSWORD="your_actual_password"
|
REGRU_PASSWORD="your_actual_password"
|
||||||
DOMAIN="dfv24.com"
|
DOMAIN="example.com"
|
||||||
WILDCARD_DOMAIN="*.dfv24.com"
|
WILDCARD_DOMAIN="*.example.com"
|
||||||
EMAIL="admin@dfv24.com"
|
EMAIL="admin@example.com"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Установка прав доступа
|
### 3. Установка прав доступа
|
||||||
@@ -719,12 +719,12 @@ sudo nano /etc/letsencrypt/regru_config.json
|
|||||||
{
|
{
|
||||||
"regru_username": "ваш_логин_regru",
|
"regru_username": "ваш_логин_regru",
|
||||||
"regru_password": "ваш_пароль_regru",
|
"regru_password": "ваш_пароль_regru",
|
||||||
"domain": "dfv24.com",
|
"domain": "example.com",
|
||||||
"wildcard": true,
|
"wildcard": true,
|
||||||
"email": "admin@dfv24.com",
|
"email": "admin@example.com",
|
||||||
|
|
||||||
"npm_enabled": true,
|
"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_email": "admin@example.com",
|
||||||
"npm_password": "changeme"
|
"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
|
Откройте Nginx Proxy Manager → SSL Certificates
|
||||||
|
|
||||||
Ваш сертификат `*.dfv24.com` готов к использованию! 🎉
|
Ваш сертификат `*.example.com` готов к использованию! 🎉
|
||||||
|
|
||||||
**Что произошло:**
|
**Что произошло:**
|
||||||
1. ✅ Создан wildcard сертификат через Let's Encrypt
|
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_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_email` | Email для входа в NPM | `admin@example.com` |
|
||||||
| `npm_password` | Пароль администратора NPM | `changeme` |
|
| `npm_password` | Пароль администратора NPM | `changeme` |
|
||||||
|
|
||||||
#### 2. Получение учетных данных NPM
|
#### 2. Получение учетных данных NPM
|
||||||
|
|
||||||
1. Войдите в Nginx Proxy Manager: `http://192.168.10.14:81`
|
1. Войдите в Nginx Proxy Manager: `http://10.10.10.14:81`
|
||||||
2. Используйте email и пароль администратора
|
2. Используйте email и пароль администратора
|
||||||
3. По умолчанию:
|
3. По умолчанию:
|
||||||
- Email: `admin@example.com`
|
- Email: `admin@example.com`
|
||||||
@@ -838,7 +838,7 @@ from letsencrypt_regru_api import NginxProxyManagerAPI
|
|||||||
|
|
||||||
# Инициализация
|
# Инициализация
|
||||||
npm_api = NginxProxyManagerAPI(
|
npm_api = NginxProxyManagerAPI(
|
||||||
host="http://192.168.10.14:81",
|
host="http://10.10.10.14:81",
|
||||||
email="admin@example.com",
|
email="admin@example.com",
|
||||||
password="changeme",
|
password="changeme",
|
||||||
logger=logger
|
logger=logger
|
||||||
@@ -851,10 +851,10 @@ npm_api.login()
|
|||||||
certificates = npm_api.get_certificates()
|
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
|
#### 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 - Получение списка сертификатов из NPM...
|
||||||
2025-10-27 10:30:16 - DEBUG - Получено 3 сертификатов
|
2025-10-27 10:30:16 - DEBUG - Получено 3 сертификатов
|
||||||
2025-10-27 10:30:16 - INFO - Создание нового сертификата в NPM
|
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 - Сертификат успешно загружен в NPM (ID: 4)
|
||||||
2025-10-27 10:30:17 - INFO - Сертификат успешно добавлен в Nginx Proxy Manager
|
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
|
```bash
|
||||||
# Проверьте доступность NPM
|
# Проверьте доступность NPM
|
||||||
curl http://192.168.10.14:81/api/
|
curl http://10.10.10.14:81/api/
|
||||||
|
|
||||||
# Проверьте учетные данные
|
# Проверьте учетные данные
|
||||||
# Войдите в NPM через браузер с теми же учетными данными
|
# Войдите в NPM через браузер с теми же учетными данными
|
||||||
@@ -922,17 +922,17 @@ curl http://192.168.10.14:81/api/
|
|||||||
**Решение:**
|
**Решение:**
|
||||||
```bash
|
```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 "
|
sudo python3 -c "
|
||||||
from letsencrypt_regru_api import NginxProxyManagerAPI
|
from letsencrypt_regru_api import NginxProxyManagerAPI
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger()
|
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()
|
npm.login()
|
||||||
print(npm.get_certificates())
|
print(npm.get_certificates())
|
||||||
"
|
"
|
||||||
@@ -978,7 +978,7 @@ sudo chown root:root /etc/letsencrypt/regru_config.json
|
|||||||
|
|
||||||
2. **Используйте HTTPS для NPM** (если доступно)
|
2. **Используйте HTTPS для NPM** (если доступно)
|
||||||
```json
|
```json
|
||||||
"npm_host": "https://192.168.10.14:443"
|
"npm_host": "https://10.10.10.14:443"
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Ограничьте доступ к API NPM**
|
3. **Ограничьте доступ к API NPM**
|
||||||
@@ -995,7 +995,7 @@ sudo tail -n 50 /var/log/letsencrypt_regru.log | grep -i npm
|
|||||||
|
|
||||||
#### В веб-интерфейсе NPM
|
#### В веб-интерфейсе NPM
|
||||||
|
|
||||||
1. Откройте NPM: `http://192.168.10.14:81`
|
1. Откройте NPM: `http://10.10.10.14:81`
|
||||||
2. Войдите в систему
|
2. Войдите в систему
|
||||||
3. Перейдите в **SSL Certificates**
|
3. Перейдите в **SSL Certificates**
|
||||||
4. Проверьте наличие сертификата для вашего домена
|
4. Проверьте наличие сертификата для вашего домена
|
||||||
@@ -1005,13 +1005,13 @@ sudo tail -n 50 /var/log/letsencrypt_regru.log | grep -i npm
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Список сертификатов в NPM через API
|
# Список сертификатов в 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" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"identity":"admin@example.com","secret":"changeme"}' \
|
-d '{"identity":"admin@example.com","secret":"changeme"}' \
|
||||||
| jq -r '.token' > /tmp/npm_token
|
| jq -r '.token' > /tmp/npm_token
|
||||||
|
|
||||||
curl -H "Authorization: Bearer $(cat /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 '.'
|
| jq '.'
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -1214,10 +1214,10 @@ sudo systemctl status cron
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# В начале crontab добавьте
|
# В начале 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 записи вручную:
|
- Проверьте DNS записи вручную:
|
||||||
|
|
||||||
```bash
|
```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 не установлен
|
### Проблема: Certbot не установлен
|
||||||
@@ -1431,15 +1431,15 @@ certbot certonly --staging --dns-regru ...
|
|||||||
sudo certbot certificates
|
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. Нажмите на иконку замка в адресной строке
|
2. Нажмите на иконку замка в адресной строке
|
||||||
3. Проверьте информацию о сертификате
|
3. Проверьте информацию о сертификате
|
||||||
4. Убедитесь, что сертификат выдан Let's Encrypt и покрывает wildcard домен
|
4. Убедитесь, что сертификат выдан Let's Encrypt и покрывает wildcard домен
|
||||||
@@ -1457,7 +1457,7 @@ sudo openssl x509 -enddate -noout -in /etc/letsencrypt/live/dfv24.com/cert.pem
|
|||||||
|
|
||||||
### Вариант 1: Импорт существующего сертификата
|
### Вариант 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**
|
2. Перейдите в **SSL Certificates** → **Add SSL Certificate**
|
||||||
3. Выберите **Custom**
|
3. Выберите **Custom**
|
||||||
4. Вставьте содержимое файлов:
|
4. Вставьте содержимое файлов:
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ sudo ./letsencrypt_regru.sh
|
|||||||
- Пароль
|
- Пароль
|
||||||
4. **Wildcard сертификат** - создавать ли `*.example.com` (рекомендуется: Да)
|
4. **Wildcard сертификат** - создавать ли `*.example.com` (рекомендуется: Да)
|
||||||
5. **Интеграция с NPM** (опционально):
|
5. **Интеграция с NPM** (опционально):
|
||||||
- Адрес NPM (например, `http://192.168.10.14:81`)
|
- Адрес NPM (например, `http://10.10.10.14:81`)
|
||||||
- Email для входа в NPM
|
- Email для входа в NPM
|
||||||
- Пароль NPM
|
- Пароль NPM
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ sudo systemctl restart letsencrypt-regru.timer
|
|||||||
"dns_check_interval": 10,
|
"dns_check_interval": 10,
|
||||||
"renewal_days": 30,
|
"renewal_days": 30,
|
||||||
"npm_enabled": true,
|
"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_email": "admin@npm.local",
|
||||||
"npm_password": "secure_password"
|
"npm_password": "secure_password"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -239,13 +239,13 @@ create_config() {
|
|||||||
read -p "Включить интеграцию с Nginx Proxy Manager? (y/N): " -n 1 -r
|
read -p "Включить интеграцию с Nginx Proxy Manager? (y/N): " -n 1 -r
|
||||||
echo ""
|
echo ""
|
||||||
npm_enabled="false"
|
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_email="admin@example.com"
|
||||||
npm_password="changeme"
|
npm_password="changeme"
|
||||||
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
npm_enabled="true"
|
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 -p "Введите email для входа в NPM: " npm_email
|
||||||
read -s -p "Введите пароль NPM: " npm_password
|
read -s -p "Введите пароль NPM: " npm_password
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -62,11 +62,11 @@ DEFAULT_CONFIG = {
|
|||||||
"regru_password": "your_password",
|
"regru_password": "your_password",
|
||||||
|
|
||||||
# Параметры домена
|
# Параметры домена
|
||||||
"domain": "dfv24.com",
|
"domain": "example.com",
|
||||||
"wildcard": True, # Создавать wildcard сертификат (*.domain.com)
|
"wildcard": True, # Создавать wildcard сертификат (*.domain.com)
|
||||||
|
|
||||||
# Email для уведомлений Let's Encrypt
|
# Email для уведомлений Let's Encrypt
|
||||||
"email": "admin@dfv24.com",
|
"email": "admin@example.com",
|
||||||
|
|
||||||
# Директории
|
# Директории
|
||||||
"cert_dir": "/etc/letsencrypt/live",
|
"cert_dir": "/etc/letsencrypt/live",
|
||||||
@@ -82,7 +82,7 @@ DEFAULT_CONFIG = {
|
|||||||
|
|
||||||
# Настройки Nginx Proxy Manager
|
# Настройки Nginx Proxy Manager
|
||||||
"npm_enabled": False, # Включить интеграцию с NPM
|
"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_email": "admin@example.com", # Email для входа в NPM
|
||||||
"npm_password": "changeme", # Пароль NPM
|
"npm_password": "changeme", # Пароль NPM
|
||||||
}
|
}
|
||||||
@@ -310,7 +310,7 @@ class NginxProxyManagerAPI:
|
|||||||
Инициализация API клиента NPM
|
Инициализация API клиента NPM
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
host: URL адрес NPM (например, http://192.168.10.14:81)
|
host: URL адрес NPM (например, http://10.10.10.14:81)
|
||||||
email: Email для входа
|
email: Email для входа
|
||||||
password: Пароль
|
password: Пароль
|
||||||
logger: Logger объект
|
logger: Logger объект
|
||||||
|
|||||||
Reference in New Issue
Block a user