$ssl_client_s_dn_legacy
$ssl_client_s_dn_legacy 变量包含 SSL 客户端证书的遗留主题可分辨名称(DN)。 — NGINX Core (HTTP)
$ssl_client_s_dn_legacy
NGINX Core (HTTP)
说明
$ssl_client_s_dn_legacy 变量在 NGINX 服务器建立需要客户端认证的 SSL/TLS 连接时被填充。具体来说,它提取客户端证书的主题可分辨名称(DN),其中包含客户端的身份、组织和国家等信息,按照 X.509 标准格式化。该值通常以字符串形式返回,DN 的各元素以文本格式表示,例如 'C=US, ST=California, L=San Francisco, O=Example Corp, CN=example.com'。 仅当启用指令 `ssl_verify_client` 时,该变量才会被设置,该指令要求客户端出示有效的 SSL 证书。如果客户端未提供证书或证书验证失败,该变量将为空。这对于记录日志、访问控制或依赖客户端身份的应用逻辑很有用。典型值会根据使用的客户端证书而大相径庭,且格式遵循标准的 DN 表示法。 在实际使用中,该变量可在不同配置中用于安全检查、基于客户端身份的条件处理,或仅用于记录连接详情以便更好地审计对 Web 服务的访问。例如,应用程序可能会使用此变量基于客户端所属组织强制实施访问控制,或将客户端详情记录用于分析目的。
配置示例
server {
listen 443 ssl;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_client_certificate /path/to/ca.crt;
ssl_verify_client on;
location /protected {
if ($ssl_client_s_dn_legacy) {
add_header X-Client-DN $ssl_client_s_dn_legacy;
}
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保 `ssl_verify_client` 设置为 `on`,以便从该变量获得有用的值;否则它将为空。
⚠
如果客户端未提供证书,该变量将不会包含任何信息,可能导致条件处理错误。
⚠
在依赖此变量之前,确保 NGINX 已正确配置以处理 SSL 连接。