$ssl_client_verify

$ssl_client_verify указывает статус проверки клиентского сертификата в SSL-соединениях. — NGINX Core (HTTP)

$ssl_client_verify NGINX Core (HTTP)

Описание

Переменная $ssl_client_verify устанавливается, когда сервер NGINX настроен на использование проверки клиентских сертификатов в SSL. Эта переменная может принимать определённые значения, которые представляют результат процесса проверки клиентского SSL-сертификата. Она может быть установлена в 'none', если клиентский сертификат не был представлен, в 'off', если проверка клиента не включена, и в 'success' или 'failed' в зависимости от исхода процесса проверки. Эта функциональность является частью основного SSL-модуля NGINX, который управляет защищёнными соединениями и обеспечивает, чтобы клиенты предъявляли действительные сертификаты, которые можно проверить относительно доверенных CA-сертификатов, настроенных в NGINX. Когда проверка клиентских сертификатов включена через директивы, таких как "ssl_verify_client", сервер использует эту переменную для оценки того, был ли предоставлен действительный клиентский сертификат в процессе SSL-рукопожатия. Проверка может включать проверки срока действия сертификата, статуса отзыва и того, подписан ли сертификат доверенным удостоверяющим центром (CA). При обработке запроса NGINX устанавливает значение $ssl_client_verify, чтобы отразить результат, который затем может использоваться для условной обработки или логирования в блоках конфигурации.

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

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

    location /private {
        if ($ssl_client_verify != "success") {
            return 403;
        }
        # handle the request for authenticated clients
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Убедитесь, что проверка SSL-клиента включена; иначе переменная не будет установлена так, как ожидается.

Имейте в виду ограничения контекста; использование $ssl_client_verify в неподходящих контекстах, таких как server{} или http{}, может привести к непредвиденным результатам.

Использование этой переменной в if() выражениях может привести к непредвиденному поведению; предпочтительнее использовать её внутри location-блоков.