proxy_ssl_name

Директива proxy_ssl_name задаёт SSL-имя хоста для проксируемого запроса. — NGINX HTTP Core

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

Описание

Директива proxy_ssl_name используется в модуле NGINX HTTP для установки значения заголовка 'Host' в проксированных SSL-запросах. Это значение хоста критично, когда бэкенд-сервер использует расширение SNI (Server Name Indication) для SSL, которое позволяет обслуживать несколько SSL-сертификатов с одного и того же IP-адреса. Настроив proxy_ssl_name, вы можете гарантировать отправку правильного имени хоста на бэкенд при выполнении запроса. Директива принимает один аргумент — имя хоста, которое NGINX будет использовать при пересылке SSL-запросов. Она может быть задана в контекстах http, server или location, что позволяет тонко управлять поведением SSL в разных областях конфигурации. Например, если у вас несколько upstream-серверов, которым требуются разные настройки SSL или разные имена хостов для успешного TLS-рукопожатия, вы можете указать proxy_ssl_name отдельно для каждого контекста. Если директива не задана, NGINX отправит исходный заголовок 'Host' из запроса клиента, что не всегда может соответствовать настройкам upstream и привести к ошибкам при установлении защищённого соединения.

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

location /api {
    proxy_pass https://backend.example.com;
    proxy_ssl_name backend.example.com;
}

Убедитесь, что указанный hostname совпадает с одним из SSL certificates на backend server, чтобы избежать SSL handshake failures.

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