$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 连接。