grpc_ssl_protocols

Директива `grpc_ssl_protocols` задаёт разрешённые протоколы SSL/TLS для gRPC-соединений. — NGINX HTTP Core

grpc_ssl_protocols
httpserverlocation
Синтаксисgrpc_ssl_protocols protocol1 protocol2 ...;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1+

Описание

Директива `grpc_ssl_protocols` позволяет настроить, какие протоколы SSL и TLS доступны для gRPC-подключений, обрабатываемых NGINX. Пользователи могут указать список протоколов, которые сервер будет принимать для защищённого взаимодействия, что помогает повысить безопасность за счёт исключения устаревших и уязвимых версий протоколов. Эта директива может быть определена в разных контекстах, таких как `http`, `server` или `location`, что даёт гибкость конфигурации в зависимости от потребностей приложения. Типичными допустимыми параметрами для этой директивы обычно являются распространённые версии SSL/TLS, такие как `TLSv1`, `TLSv1.1`, `TLSv1.2` и `TLSv1.3`, что позволяет администраторам тщательно контролировать стандарты безопасности, используемые их приложениями. Кроме того, определение этой директивы в контексте `http` применит настройки ко всему серверу, тогда как определение в контекстах `server` или `location` позволит добиться более тонкого контроля, возможно включая разные настройки протоколов для разных gRPC‑сервисов. Важно располагать указанные протоколы таким образом, чтобы они соответствовали как требованиям безопасности, так и требованиям совместимости клиентских приложений.

Пример конфига

server {
    listen 443 ssl;
    grpc_ssl_protocols  TLSv1.2 TLSv1.3;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
}

Использование устаревших протоколов, таких как SSLv3, может привести к уязвимостям безопасности, например, к атакам POODLE.

Неправильная конфигурация может вызвать проблемы совместимости с клиентами, если клиенты не поддерживают указанные протоколы.