$ssl_client_s_dn_legacy
Переменная $ssl_client_s_dn_legacy содержит устаревшее различительное имя субъекта (DN) клиентского SSL-сертификата. — NGINX Core (HTTP)
Описание
Переменная $ssl_client_s_dn_legacy заполняется, когда сервер NGINX устанавливает SSL/TLS‑соединение, требующее аутентификации клиента. Конкретно, она извлекает различительное имя субъекта (DN) сертификата клиента, которое содержит информацию, например, об идентификации клиента, организации и стране, отформатированную в соответствии со стандартами X.509. Значение обычно возвращается как строка, где элементы DN представлены в текстовом формате, например 'C=US, ST=California, L=San Francisco, O=Example Corp, CN=example.com'. Эта переменная устанавливается только при включённой директиве `ssl_verify_client`, которая требует от клиентов предъявления действительных SSL-сертификатов. Если клиентский сертификат не представлен или не проходит проверку, переменная будет пустой. Это может быть полезно для целей логирования, контроля доступа или логики приложения, зависящей от идентичности клиента. Типичные значения могут сильно различаться в зависимости от используемых клиентских сертификатов, а формат соответствует стандартному представлению DN. На практике эта переменная может применяться в разных конфигурациях для проверок безопасности, условной обработки на основе идентичности клиента или просто для записи сведений о соединении с целью лучшего аудита доступа к веб‑сервису. Например, приложение может использовать эту переменную для обеспечения контроля доступа на основе организации клиента или для записи данных о клиенте в аналитических целях.
Пример конфига
server {
listen 443 ssl;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_client_certificate /path/to/ca.crt;
ssl_verify_client on;
location /protected {
if ($ssl_client_s_dn_legacy) {
add_header X-Client-DN $ssl_client_s_dn_legacy;
}
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что `ssl_verify_client` установлен в `on`, чтобы получать полезные значения из этой переменной; в противном случае она будет пустой.
Если клиентские сертификаты не предоставляются, эта переменная не будет содержать никакой информации, что может привести к ошибкам в условной обработке.
Убедитесь, что NGINX правильно настроен для обработки SSL-соединений, прежде чем полагаться на эту переменную.