grpc_ssl_name
Директива grpc_ssl_name задаёт имя хоста для gRPC-сервера при использовании SSL. — NGINX HTTP Core
Описание
Директива grpc_ssl_name используется в конфигурации NGINX для задания имени хоста, которое будет отправлено в расширении Server Name Indication (SNI) во время SSL-рукопожатия для gRPC‑соединений. Это особенно важно, когда NGINX действует как обратный прокси для нескольких gRPC‑сервисов, размещённых на одном IP‑адресе, но требующих различных SSL‑сертификатов в зависимости от имени хоста, запрашиваемого клиентом. Когда эта директива задана, NGINX будет заменять имя хоста в SSL‑контексте на указанное значение при обработке gRPC‑запросов. Это повышает безопасность и надёжность SSL‑соединений, гарантируя, что для каждого конкретного запроса к gRPC‑сервису будет представлен корректный сертификат. Директива применяется в контекстах http, server и location, что позволяет гибко настраивать конфигурацию в зависимости от структуры ваших сервисов. Аргументом этой директивы должна быть одна строка, задающая SSL‑имя хоста. Если директива опущена, NGINX по умолчанию использует исходный хост, запрошенный клиентом. Правильная настройка grpc_ssl_name необходима для конфигураций с виртуальным хостингом или при работе с несколькими gRPC‑бэкендами.
Пример конфига
server {
listen 443 ssl;
server_name grpc.example.com;
grpc_ssl_name backend.grpc.example.com;
location / {
grpc_pass grpc://backend;
}
}Убедитесь, что hostname указан правильно и соответствует SSL certificate, покрывающему этот hostname.
Использование grpc_ssl_name вместе с несколькими server blocks может привести к конфликтам, если они не настроены должным образом.