$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 块中使用。