ssl_verify_depth在nginx.conf中是什么意思?

What does ssl_verify_depth mean in nginx.conf?

我想知道 ssl_verify_depth 在 nginx.conf 中是什么意思? docs 不是很详细,只有这句话:

Sets the verification depth in the client certificates chain.

增加或减少有什么作用?我注意到增加它会使 nginx 更有可能接受证书,但这是为什么呢?

深度实际上是中间证书颁发者的最大数量,即验证客户端证书时允许遵循的最大CA证书数量。

深度为 0 表示仅接受 self-signed 客户端证书, 默认深度 1 意味着客户端证书可以是 self-signed 或必须由服务器直接知道的 CA 签名(即 CA 的证书在 SSLCACertificatePath 下)等。 深度 2 表示接受由(单级)中间 CA 签名的证书,即由中间 CA 接受,其 CA 证书由服务器直接知道的 CA 签名。

我们关于此指令的 perl 测试有一些非常有用的评论,将帮助您更好地理解我在 NGINX 上下文中的解释。

https://github.com/nginx/nginx-tests/blob/7a9e95fdd30729540ee9650be7f991c330367d5b/ssl_verify_depth.t#L145