Генерация 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 (ключ, сертификат и конфигурация), хранятся в:
Перейдите в этот каталог, прежде чем продолжить:
Шаг 1. Сгенерируйте закрытый ключ¶
Сгенерировать 2048-битный закрытый ключ RSA:
После выполнения появится файл 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-сертификат¶
Сгенерируйте сертификат, используя закрытый ключ и конфигурационный файл:
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), вы получите сертификат должен восстановиться. - Чтобы проверить сгенерированный сертификат: