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 等颁发 - 此类验证预计将在其他地方完成。
我们有一个利用 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 等颁发 - 此类验证预计将在其他地方完成。