ssl_verify_depth
ssl_verify_depth 指令指定在 SSL/TLS 客户端认证期间被信任的 CA 证书链的最大深度。 — NGINX HTTP Core
ssl_verify_depth
httpserver
语法ssl_verify_depth number;
默认值none
上下文http, server
模块NGINX HTTP Core
参数1
说明
ssl_verify_depth 指令用于 NGINX 的 SSL 模块中,用于设置 SSL/TLS 客户端认证时允许的证书颁发机构(CAs)链的最大深度。此深度以整数值表示,指示客户端证书所呈现的信任链中可以包含多少个 CA 证书。如果连接提出的证书链长度大于此指令设置的值,则该连接将被拒绝。 该指令在需要客户端认证的环境中特别有用,可确保证书验证路径中只允许有限数量的中间 CA。通过强制最大深度,服务器管理员可以更好地控制信任关系并降低来自过深或不受信任证书链的潜在风险。 例如,将 ssl_verify_depth 设置为 1 表示服务器只会信任具有直接受信任颁发者(根 CA)或仅包含单个中间 CA 的链的证书。这有助于定义严格的 CA 层级,并能防止由深层信任链中可能包含的不受信任 CA 引发的潜在安全问题。
配置示例
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/server.key;
ssl_client_certificate /etc/ssl/certs/ca.crt;
ssl_verify_client on;
ssl_verify_depth 2;
}⚠
确保该值设置不会过度限制信任;在确定深度之前请咨询您的 CA 层级。
⚠
比指定深度更长的证书链会导致连接被拒绝,如果配置错误可能会影响用户访问。