mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-05 04:02:31 +02:00
The line-by-line web translator reordered words inside `**bold**` spans and misplaced/dropped the markers, producing `**LB` or `****` (empty bold). Mask each `**...**` as ONE atomic sentinel: translate the inner text on its own, then store the whole balanced `**inner**` — the engine never sees the markers and cannot reorder or collapse them. Also harden the anthropic prompt to keep emphasis balanced. Auto-prune: after translating, delete generated docs/ru files whose docs/en source no longer exists (renamed/removed) and drop now-empty dirs, so the tree mirrors docs/en 1:1 (removes the stale development/modules.md and guides/geoip-and-device-detection.md). Bump PROMPT_VERSION to 6 to invalidate the contaminated cache and regenerate docs/ru (0 broken bold spans remaining, aside from pre-existing multi-line bold that spans a soft line break).
142 lines
5.9 KiB
Markdown
142 lines
5.9 KiB
Markdown
# Генерация SSL-сертификата для Nginx в XC_VM
|
||
|
||
В этом руководстве объясняется, как создать самозаверяющий SSL-сертификат, чтобы включить безопасные HTTPS-соединения для встроенного сервера Nginx в проекте XC_VM.
|
||
|
||
> **Примечание:** При новой установке уже генерируется самоподписанный сертификат **уникальный**
|
||
> автоматически (программа установки запускает `openssl` и записывает `server.key`/`server.crt`
|
||
> в `bin/nginx/conf/` перед запуском Nginx), а `CertbotCronJob` позже заменяет
|
||
> с настоящим сертификатом Let's Encrypt. Следуйте этому руководству только для ** восстановления
|
||
> или замените** сертификат вручную.
|
||
|
||
---
|
||
|
||
## Обзор
|
||
|
||
**SSL (уровень защищенных сокетов)** шифрует соединение между клиентом и сервером, обеспечивая конфиденциальность данных и доверие пользователей.
|
||
В этом руководстве показано, как создать **самозаверяющий SSL-сертификат** для встроенного сервера **Nginx** в проекте **XC_VM**.
|
||
|
||
---
|
||
|
||
## Местоположение конфигурации
|
||
|
||
Все файлы, связанные с SSL (ключ, сертификат и конфигурация), хранятся в:
|
||
|
||
```bash
|
||
/home/xc_vm/bin/nginx/conf
|
||
```
|
||
|
||
Перейдите в этот каталог, прежде чем продолжить:
|
||
|
||
```bash
|
||
cd /home/xc_vm/bin/nginx/conf
|
||
```
|
||
|
||
---
|
||
|
||
## Шаг 1. Сгенерируйте закрытый ключ
|
||
|
||
Сгенерировать **2048-битный закрытый ключ RSA**:
|
||
|
||
```bash
|
||
openssl genrsa -out server.key 2048
|
||
```
|
||
|
||
После выполнения появится файл `server.key` — это ваш **закрытый ключ**.
|
||
Сохраните его **строго конфиденциально** — он используется для подписи SSL-сертификата.
|
||
|
||
---
|
||
|
||
## Шаг 2. Создайте конфигурационный файл server.cnf.
|
||
|
||
Создайте файл конфигурации, содержащий параметры сертификата:
|
||
|
||
```bash
|
||
cat > server.cnf << EOF
|
||
[req]
|
||
distinguished_name = req_distinguished_name
|
||
x509_extensions = v3_req
|
||
prompt = no
|
||
|
||
[req_distinguished_name]
|
||
C = RU
|
||
ST = Moscow
|
||
L = Moscow
|
||
O = XC_VM
|
||
OU = XC_VM
|
||
CN = XC_VM
|
||
|
||
[v3_req]
|
||
keyUsage = keyEncipherment, dataEncipherment
|
||
extendedKeyUsage = serverAuth
|
||
subjectAltName = @alt_names
|
||
|
||
[alt_names]
|
||
DNS.1 = XC_VM
|
||
EOF
|
||
```
|
||
|
||
**Parameter explanation:**
|
||
|
||
|Поле|Ценность|Цель|
|
||
| --- | --- | --- |
|
||
| `C` |ру|Страна|
|
||
| `ST` |Москва|Штат / Провинция|
|
||
| `L` |Москва|Город/населенный пункт|
|
||
| `O` | XC_VM |Организация|
|
||
| `OU` | XC_VM |Организационное подразделение|
|
||
| `CN` | XC_VM |Общее имя (основное имя хоста)|
|
||
| `DNS.1` | XC_VM |Альтернативное имя субъекта (SAN)|
|
||
|
||
> **Совет:** Для реальных доменных имен замените `DNS.1 = XC_VM` на ваш реальный домен (например, `DNS.1 = panel.example.com`), чтобы избежать предупреждений браузера.
|
||
|
||
---
|
||
|
||
## Шаг 3. Сгенерируйте самозаверяющий SSL-сертификат
|
||
|
||
Сгенерируйте сертификат, используя закрытый ключ и конфигурационный файл:
|
||
|
||
```bash
|
||
openssl req -new -x509 -key server.key -out server.crt -days 3650 -config server.cnf
|
||
```
|
||
|
||
**Explanation:**
|
||
|
||
- `-new -x509` — создает новый самозаверяющий сертификат.
|
||
- `-days 3650` — срок действия сертификата (10 лет)
|
||
- `-config server.cnf` — использует пользовательскую конфигурацию
|
||
- Результат: `server.crt` файл, содержащий общедоступный сертификат
|
||
|
||
---
|
||
|
||
## Окончательные файлы
|
||
|
||
После выполнения всех шагов в `/home/xc_vm/bin/nginx/conf` должны присутствовать следующие файлы:
|
||
|
||
|Файл|Цель|
|
||
| --- | --- |
|
||
| `server.key` |Закрытый ключ|
|
||
| `server.crt` |Самозаверяющий SSL-сертификат|
|
||
| `server.cnf` |Файл конфигурации сертификата|
|
||
|
||
---
|
||
|
||
## Результат
|
||
|
||
Ваш **XC_VM Сервер Nginx** теперь доступен через **https** с помощью недавно созданного самозаверяющего сертификата.
|
||
Браузеры будут отображать предупреждение “не доверенный” — это ожидаемое поведение для самозаверяющих сертификатов.
|
||
|
||
---
|
||
|
||
## Записи
|
||
|
||
- Подходят самозаверяющие сертификаты **только для внутреннего использования или тестирования**.
|
||
- Для общедоступных доменов используйте сертификаты от доверенных центров сертификации (например, [Let's Encrypt](https://letsencrypt.org/)).
|
||
- Если вы измените имя домена/хоста (`CN` или `DNS.1`), вы получите сертификат **должен восстановиться**.
|
||
- Чтобы проверить сгенерированный сертификат:
|
||
|
||
```bash
|
||
openssl x509 -in server.crt -text -noout
|
||
```
|
||
|
||
---
|