Перейти к содержанию

Генерация 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 (ключ, сертификат и конфигурация), хранятся в:

/home/xc_vm/bin/nginx/conf

Перейдите в этот каталог, прежде чем продолжить:

cd /home/xc_vm/bin/nginx/conf

Шаг 1. Сгенерируйте закрытый ключ

Сгенерировать 2048-битный закрытый ключ RSA:

openssl genrsa -out server.key 2048

После выполнения появится файл server.key — это ваш закрытый ключ. Сохраните его строго конфиденциально — он используется для подписи SSL-сертификата.


Шаг 2. Создайте конфигурационный файл server.cnf.

Создайте файл конфигурации, содержащий параметры сертификата:

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-сертификат

Сгенерируйте сертификат, используя закрытый ключ и конфигурационный файл:

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).
  • Если вы измените имя домена/хоста (CN или DNS.1), вы получите сертификат должен восстановиться.
  • Чтобы проверить сгенерированный сертификат:
openssl x509 -in server.crt -text -noout