首页 > 解决方案 > Kubernetes:auth-tls-verify-client 是否独立于 TLS 工作?

问题描述

在 Kubernetes 中,要启用 client-certificate authN,可以在 ingress 中使用注解 nginx.ingress.kubernetes.io/auth-tls-verify-client。即使我没有在该入口中进行 TLS 终止,客户端证书身份验证也可以工作吗?例如,在这个ingress中,如果我从 ingress 中删除 tls 块,client-cert authN 是否仍然有效?

tls:
  - hosts:
    - mydomain.com
    secretName: tls-secret

(更多信息:我有两个用于同一主机的入口,一个具有 TLS 部分,另一个具有特定 api-path 的规则,并且具有客户端证书部分但没有 TLS 部分)。

此外,如果请求是在http端点(不是https)上发送的,我观察到即使注释值设置为,客户端证书也会被忽略on。这是记录在案的行为吗?

标签: kuberneteskubernetes-ingressclient-certificates

解决方案


如果您按照描述定义两个入口,则除非您将 auth-tls-verify-client 指定为可选,否则将需要证书。请参阅评论中提到的文档。

如果要进行客户端证书身份验证,还需要 TLS。客户端证书在 TLS 握手期间使用,这就是为什么为一个入口指定客户端证书适用于所有主机相同的地方(例如www.example.com


推荐阅读