$ssl_client_sigalg

Переменная $ssl_client_sigalg содержит алгоритм подписи, использованный в SSL-сертификате клиента. — NGINX Core (HTTP)

$ssl_client_sigalg NGINX Core (HTTP)

Описание

Переменная $ssl_client_sigalg устанавливается, когда клиент предоставляет SSL-сертификат в ходе TLS-рукопожатия. Она хранит алгоритм подписи, которым был подписан сертификат клиента. Эта переменная критически важна для приложений, которые проверяют клиентские сертификаты и могут принять решение о предоставлении или отказе в доступе на основании уровня безопасности алгоритма подписи. Значения $ssl_client_sigalg могут различаться; распространённые алгоритмы включают 'sha256WithRSAEncryption', 'sha1WithRSAEncryption' и другие, в зависимости от конфигурации клиента и политик безопасности. NGINX будет устанавливать эту переменную только в контекстах, где включены клиентские SSL-сертификаты, конкретно в блоках 'server' и 'location', где директива ssl_verify_client установлена в 'on' или 'optional'. Если клиентский сертификат не предоставлен, переменная будет пустой. Это особенно полезно для ведения логов или отладки, поскольку позволяет администраторам серверов увидеть, какие алгоритмы подписи используют клиенты при обращении к их сервисам, и принимать обоснованные решения на основе этой информации. Кроме того, изменения в конфигурациях клиентского SSL могут изменить генерируемые здесь значения и должны соответствующим образом контролироваться.

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

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

    location / {
        if ($ssl_client_sigalg = 'sha256WithRSAEncryption') {
            # Log or take action for clients using SHA256
            access_log /var/log/nginx/ssl.log;
        }
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Эта переменная будет пустой, если проверка SSL-клиента не включена или клиент не предоставляет сертификат.

Неправильная настройка SSL‑контекста может привести к тому, что переменная не будет установлена, что вызовет непредвиденное поведение в вашей логике доступа.