$ssl_client_verify

$ssl_client_verify 表示 SSL 连接中客户端证书的验证状态。 — NGINX Core (HTTP)

$ssl_client_verify NGINX Core (HTTP)

说明

当 NGINX 服务器被配置为使用 SSL 客户端验证时,会设置变量 $ssl_client_verify。该变量可取特定值,以表示客户端 SSL 证书验证过程的结果。如果未提供客户端证书,则可设置为 'none';如果未启用客户端验证,则为 'off';根据验证结果则为 'success' 或 'failed'。此功能属于 NGINX 核心 SSL 模块,该模块管理安全连接,并确保证书可针对在 NGINX 中配置的受信任 CA 证书进行验证。 当通过诸如 "ssl_verify_client" 这样的指令启用客户端证书验证时,服务器使用该变量来判断在 SSL 握手过程中是否提供了有效的客户端证书。验证可以包括对证书有效期、吊销状态以及证书是否由受信任的 Certificate Authority (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 客户端验证;否则,该变量可能不会按预期设置。

注意上下文限制;在不适当的上下文(例如 server{} 或 http{})中使用 $ssl_client_verify 可能会产生意外结果。

在 if() 语句中使用该变量可能导致意外行为;建议在 location 块中使用。