NGINX 为 auth-tls-verify-client = optional_no_ca 完成哪些客户端证书身份验证验证

Which client certificate auth validations are done by NGINX for auth-tls-verify-client = optional_no_ca

我们有一个利用 NGINX 的 K8S 服务,并且在某些流程中想要接受客户端证书身份验证。
服务有一个 public 可信客户端证书(PEM 格式)的动态列表,根 CA 未知。
在 NGINX 中,最好的设置似乎是:

nginx.ingress.kubernetes.io/auth-tls-verify-client: optional_no_ca

同时将完整证书 ($ssl_client_escaped_cert) 发送到上游服务以比较整个 public 证书。

问题是 NGINX 是否仍会在 SSL 握手期间执行客户端证书验证(并且只跳过 CA 检查),以验证请求确实是由证书及其私钥的唯一所有者发送的。

它仍然会在 TLS 握手中检查证书中的 public 密钥是否可以用于验证 CertificateVerify 中的签名,即客户端实际上拥有发送证书的私钥。

它不会检查证书本身是否由受信任的 CA 等颁发 - 此类验证预计将在其他地方完成。