$ssl_client_raw_cert
变量 $ssl_client_raw_cert 包含客户端 SSL 证书的原始字节。 — NGINX Core (HTTP)
$ssl_client_raw_cert
NGINX Core (HTTP)
说明
当 NGINX 配置为处理 SSL/TLS 连接且客户端出示证书用于认证时,会为变量 $ssl_client_raw_cert 赋值。该变量在处理通过 SSL 连接的请求的上下文中可用,当 'ssl_verify_client' 指令设置为 'on' 或 'optional' 时即可使用。原始客户端证书作为单个 base64-encoded 字符串输出,可用于记录、访问控制或任何需要了解客户端证书的应用特定处理。 该变量在实施双向 TLS (mTLS) 的安全环境中特别有用,因为它允许服务器管理员和应用开发者根据客户端证书施加规则,例如为了审计记录敏感信息,或根据证书的有效性或属性动态更改请求处理。此变量的典型值将以 base64-encoded 形式表示客户端在 SSL 握手期间传输的 X.509 证书,因此在需要跨受信任实体进行身份验证的场景中至关重要。 要在实践中使用此变量,NGINX 可以直接记录证书内容或根据证书属性(例如 subject 或 issuer)有条件地路由请求。诸如 'ssl_verify_client' 的设置需要谨慎配置,因为它们会直接影响应用安全性。
配置示例
server {
listen 443 ssl;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_verify_client on;
location / {
add_header X-Client-Cert $ssl_client_raw_cert;
# Additional processing...
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保 'ssl_verify_client' 指令设置正确;否则该变量将为空。
⚠
此变量仅在启用 SSL 的服务器上下文中可用;在 HTTP 上下文中不存在。
⚠
记录原始客户端证书可能会暴露敏感信息;请确保遵守安全策略。