Istio Gateway Mode Mutual是否通过构建链来验证客户端证书?

问题描述

我已将IngressGateway模式设置为“相互”,并提供了我的SSL证书,私钥以及受信任的中间发行者和根目录作为CA证书。

我想知道Istio如何实际验证客户端证书的身份,它是否在网关上建立了链?

解决方法

是的,根据istio documentation,您可以验证机密是否已成功创建,然后推送到网关:

  • 验证秘密已在istio-system命名空间中成功创建:

    kubectl -n istio-system get secrets
    

httpbin-credentialhelloworld-credential应该显示在机密列表中。

  • 检查日志以确认入口网关代理已将密钥/证书对推送到入口网关。

    kubectl logs -n istio-system "$(kubectl get pod -l istio=ingressgateway \
    -n istio-system -o jsonpath='{.items[0].metadata.name}')"
    

日志应显示已添加httpbin-credential机密。如果使用双向TLS,则httpbin-credential-cacert机密也应出现。验证日志是否显示网关代理收到来自入口网关的SDS请求,资源名称为httpbin-credential,以及入口网关已获得密钥/证书对。如果使用双向TLS,则日志应显示密钥/证书已发送到入口网关,网关代理已收到带有httpbin-credential-cacert资源名称的SDS请求,并且入口网关已获得根证书。

该示例基于此guide