$ssl_client_verify
$ssl_client_verify указывает статус проверки клиентского сертификата в SSL-соединениях. — 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-блоков.