proxy_ssl_verify_depth

在代理过程中,`proxy_ssl_verify_depth` 指令设置 SSL 证书链的验证深度。 — NGINX HTTP Core

proxy_ssl_verify_depth
httpserverlocation
语法proxy_ssl_verify_depth depth;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

当 NGINX 作为具有 SSL 证书的后端服务器的反向代理并与 SSL/TLS 连接配合使用时,会用到 `proxy_ssl_verify_depth` 指令。该指令专门用于控制在验证过程中,通向有效且受信任的根证书的证书链中可以包含多少个中间证书。 当客户端通过 HTTPS 连接到服务器时,SSL 证书验证可能包含多层证书,例如根证书、中间证书等。`proxy_ssl_verify_depth` 指令允许管理员定义在验证失败之前可遍历的这些中间证书的最大数量。如果将值设置为 `0`,则表示只验证终端实体证书而不验证任何中间证书。 该指令对于建立安全连接至关重要,因为它有助于确认上游服务器所提供的 SSL 证书的合法性,并有助于防止中间人攻击。正确配置验证深度可确保证书链仅在有效时被接受,从而维护被代理连接的完整性和安全性。

配置示例

location /api {
    proxy_pass https://backend;
    proxy_ssl_verify on;
    proxy_ssl_verify_depth 2;
}

将 verify depth 设置得过低可能会允许不受信任的证书通过验证,尤其当它们距根证书只有几层时。

该指令本身并不配置证书验证;请确保也使用 `proxy_ssl_verify on;` 以使其生效。