$ssl_client_cert
当启用 SSL 客户端验证时,变量 $ssl_client_cert 包含客户端的 SSL 证书,形式为 PEM 编码的字符串。 — NGINX Core (HTTP)
$ssl_client_cert
NGINX Core (HTTP)
说明
在 NGINX 中,当发生 SSL 客户端证书验证时会使用 $ssl_client_cert 变量。该变量存储在 SSL 握手过程中提供的客户端证书,格式为 PEM 编码的字符串。当 'ssl_verify_client' 指令被配置为 'on' 且证书验证成功时,该变量被设置为客户端证书的值。 在需要进行客户端身份验证的安全通信场景(例如 API 服务或用户认证系统)中,这个变量特别有用。如果未提供客户端证书或验证失败,该变量将为空。该变量的内容可以记录到日志、在条件语句中进行评估,或在必要时传递给后端应用程序。 典型用途包括基于客户端证书属性(例如通用名 (CN) 或主题备用名 (SAN))使用该变量来授权访问,从而在应用层增强安全性。在必须以安全方式确保每个客户端身份的服务中,这种方法至关重要,它利用了 SSL/TLS 协议。
配置示例
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_client_certificate /path/to/ca.pem;
ssl_verify_client on;
location / {
if ($ssl_client_cert) {
add_header X-Client-Cert $ssl_client_cert;
}
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保将 ssl_verify_client 设置为 'on',以便 $ssl_client_cert 能被填充。
⚠
$ssl_client_cert 在客户端未提供证书或验证失败时将为空。
⚠
记录 $ssl_client_cert 时要小心,因为它包含敏感信息。