我们有一个利用NGINX的K8S服务,在某些流程中,我们希望接受客户端证书身份验证
服务有一个公共可信客户端证书(PEM格式(的动态列表,并且根CA未知
在NGINX中,似乎最好使用的设置是:
nginx.ingress.kubernetes.io/auth-tls-verify-client: optional_no_ca
在向上游服务发送完整证书($ssl_client_escaped_cert(以比较整个公共证书时。
问题是,NGINX是否仍将在SSL握手期间执行客户端证书验证(并且只跳过CA检查(,以验证请求是否确实是由证书及其私钥的唯一所有者发送的。
它仍然会在TLS握手中检查证书中的公钥是否可以用于验证CertificateVerify中的签名,即客户端是否实际拥有发送证书的私钥。
它不会检查证书本身是否由受信任的CA等颁发——这种验证预计将在其他地方进行。