$ssl_client_s_dn

Переменная $ssl_client_s_dn содержит имя субъекта (DN) из SSL-сертификата клиента. — NGINX Core (HTTP)

$ssl_client_s_dn NGINX Core (HTTP)

Описание

Переменная $ssl_client_s_dn заполняется, когда клиент предоставляет действительный SSL/TLS-сертификат во время обмена рукопожатием SSL/TLS, и содержит имя субъекта (DN) клиента, указанное в этом сертификате. Эта переменная извлекается из сертификата клиента и служит способом идентификации владельца сертификата путём представления атрибутов имени субъекта, которые обычно включают информацию, такую как common name, organization, country и другие соответствующие поля. Наличие и содержимое этой переменной зависят от установки директивы `ssl_verify_client` в значение "on" или "optional", что гарантирует, что NGINX требует либо запрашивает клиентский сертификат. Только после успешной проверки действительного клиентского сертификата эта переменная становится доступна в контексте NGINX.

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

server {
    listen 443 ssl;
    ssl_certificate /path/to/server.crt;
    ssl_certificate_key /path/to/server.key;
    ssl_verify_client on;

    location / {
        if ($ssl_client_s_dn) {
            add_header X-Client-DN $ssl_client_s_dn;
        }
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Убедитесь, что `ssl_verify_client` установлен в `on` или `optional`, чтобы эта переменная была заполнена.

Если клиентский сертификат не предоставлен, `$ssl_client_s_dn` будет пустым.

Помните, что к этой переменной можно обращаться только в контекстах, где SSL включен.