You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Istio使用客户端证书向要求客户端认证的外部HTTPS服务发起请求

配置方案说明

你的需求完全可以通过Istio现有资源实现,核心调整点如下:

1. 版本兼容与基础要求

  • Istio 1.14及更高版本支持SIMPLE TLS模式下的客户端证书挂载,如果你使用的版本低于1.14,需要将DestinationRule中的tls.mode改为MUTUAL
  • 你配置的credentialName: app-secret对应的Kubernetes Secret必须部署在业务Pod所在的命名空间(无需放在istio-system命名空间),Secret类型必须为kubernetes.io/tls,需包含以下字段:
    • tls.crt:你的客户端证书内容
    • tls.key:客户端证书对应的私钥
    • 可选字段ca.crt:签发目标服务证书的自定义CA根证书,配置后可以关闭insecureSkipVerify: true提升安全性

2. 现有配置修改点

你当前的ServiceEntry配置是符合TLS origination要求的,80端口映射到443的逻辑无需调整,仅需要修改DestinationRule的TLS配置:

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: app-dr
spec:
  host:  app.k8s.ssg-masamune.com
  trafficPolicy:
    portLevelSettings:
    - port:
        number: 80
      tls:
        # 1.14+版本保留SIMPLE即可,低于该版本改为MUTUAL
        mode: SIMPLE
        credentialName: app-secret
        # 配置ca.crt后可删除以下行,启用服务端证书校验
        insecureSkipVerify: true
        sni: app.k8s.ssg-masamune.com
        subjectAltNames:
        - app

3. 效果验证

配置下发完成后,直接在业务Pod内通过HTTP协议访问目标服务即可,Istio会自动完成TLS握手并携带指定客户端证书完成身份校验,无需修改业务代码。

内容的提问来源于stack exchange,提问作者Jason Hirata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:54:03