问题描述
我已将IngressGateway模式设置为“相互”,并提供了我的SSL证书,私钥以及受信任的中间发行者和根目录作为CA证书。
我想知道Istio如何实际验证客户端证书的身份,它是否在网关上建立了链?
解决方法
是的,根据istio documentation,您可以验证机密是否已成功创建,然后推送到网关:
验证秘密已在
istio-system
命名空间中成功创建:kubectl -n istio-system get secrets
httpbin-credential
和helloworld-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。