HTTPS-сервер с ГОСТ-сертификатом¶
Руководство описывает подключение готового сертификата и ключа к Nginx в НАЙС.ОС. Создание сертификатов вынесено в OpenSSL и ГОСТ.
Проверка системы¶
Списки алгоритмов доступны через системную OpenSSL; они не заменяют проверку реально согласованного HTTPS-соединения.
Подготовка стенда¶
Для лаборатории используйте отдельный порт 8443, собственное тестовое имя и тестовую цепочку сертификатов. Не заменяйте рабочий виртуальный хост до завершения проверки.
server {
listen 8443 ssl;
server_name test-gost.example.invalid;
ssl_certificate /etc/nginx/gost/server-chain.pem;
ssl_certificate_key /etc/nginx/gost/server-key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
location /healthz {
default_type text/plain;
return 200 "niceos-gost-test\n";
}
}
Это каркас, а не универсально готовый ГОСТ-криптопрофиль. Выбор ssl_ciphers, групп и параметров TLS зависит от профиля OpenSSL и совместимых клиентов. Настраивайте их по фактическому списку шифров и результату тестового соединения, а не по имени ключа.
Права на закрытый ключ¶
Секретный ключ доступен только процессам, которым необходимо его читать. Не помещайте его в Git, публичные каталоги, резервные копии без шифрования или пользовательский ~/Downloads.
Приёмка¶
sudo nginx -t
sudo systemctl reload nginx
openssl s_client \
-connect 127.0.0.1:8443 \
-servername test-gost.example.invalid \
-showcerts </dev/null
Проверяем: успешную цепочку X.509, правильный SAN, поддержанный алгоритм, отсутствие ошибок TLS и HTTP-ответ /healthz. Для полного ГОСТ-TLS приёмочный журнал должен показывать реально согласованный ГОСТ-набор алгоритмов. Проверка сертификата с ГОСТ-подписью при обычном AES-TLS не эквивалентна ГОСТ-TLS.
Откат¶
Храните предыдущий файл конфигурации. Если nginx -t не проходит, не перезагружайте рабочую службу. После успешного reload при проблемах с клиентами верните прежний конфигурационный блок и повторите nginx -t перед откатом.