$ssl_client_fingerprint
Переменная $ssl_client_fingerprint представляет отпечаток SSL-сертификата клиента. — NGINX Core (HTTP)
Описание
Переменная $ssl_client_fingerprint используется в NGINX, когда включена аутентификация SSL-клиента. Она предоставляет уникальный отпечаток SSL-сертификата клиента, основанный на криптографическом хеше, обычно вычисляемом с помощью алгоритмов хеширования SHA-1 или SHA-256. Этот отпечаток получается из данных сертификата, в частности из структуры `tbsCertificate`. Переменная устанавливается только в случае успешного выполнения аутентификации SSL-клиента, то есть когда сервер настроен требовать клиентские сертификаты и клиент предоставил действительный сертификат во время SSL handshake. Типичные значения этой переменной будут представлять собой шестнадцатеричную строку, соответствующую хешу сертификата клиента. Это полезно для ведения логов, контроля доступа и применения дополнительной пользовательской логики на основе идентичности клиента.
Пример конфига
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 / {
# Use the fingerprint in access logs
access_log /var/log/nginx/access.log combined; # Redis or any other designated log format
set $client_fp $ssl_client_fingerprint;
if ($client_fp) {
# More logic can be applied here based on the fingerprint
}
}
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что аутентификация клиента по SSL включена; в противном случае эта переменная не будет установлена.
Будьте осторожны и не полагайтесь на эту переменную для аутентификации без надлежащей проверки SSL-рукопожатия.
Формат отпечатка может различаться в зависимости от используемого алгоритма хеширования; убедитесь, что обрабатываете оба формата (SHA-1, SHA-256), если это применимо.