Обновлено руководство и скрипты: заменены примеры доменов и адресов 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_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. Вставьте содержимое файлов:

View File

@@ -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"
} }

View File

@@ -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 ""

View File

@@ -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 объект