Files
XC_VM/docs/ru/administration/ssl-generation.md
T
Divarion_D d4da90f37b fix(docs): translate bold spans atomically and auto-prune orphaned ru pages
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).
2026-08-27 18:07:43 +03:00

142 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Генерация 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
```
---