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

Strimzi通过SCRAM-SHA-512+TLS经OpenShift Route用Sarama连接报错

你的Kafka监听器配置本身没有语法或逻辑错误,问题出在TLS证书信任链或加载环节,按以下步骤排查:

  • 最常见的根因:OpenShift Route的TLS终止策略问题
    Strimzi创建的Route类型外部监听器,默认使用passthroughTLS终止模式,此时暴露的证书是Kafka集群CA签发的Broker证书,你导出的kafka-cluster-ca-cert应当可以正常校验。但如果你的OpenShift集群强制为Route注入了默认的Ingress CA证书(edge终止模式),则Broker证书会被替换为OpenShift集群的Ingress证书,此时你需要导出OpenShift的Ingress CA证书而非Kafka集群CA证书用于校验。
    你可以执行以下命令验证当前Route返回的证书颁发者:
openssl s_client -connect <你的bootstrap路由地址>:443 -showcerts < /dev/null | grep "issuer"

如果输出的issuer信息和你导出的kafka-cluster-ca-cert的主体信息不一致,就属于这个场景,导出OpenShift Ingress CA传入即可。

  • 排查点2:CA证书导出格式错误
    检查你导出的ca.crt文件是否为标准PEM格式:
  1. 确认文件内容以-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾
  2. 执行命令验证证书有效性:
openssl x509 -in ca.crt -text -noout

如果命令报错说明证书导出过程存在字符转义或base64解码错误,重新执行导出命令即可。

  • 排查点3:Sarama代码未正确加载传入的CA证书
    对照你参考的Sarama示例代码,确认你在代码中正确实现了CA证书加载逻辑:将传入的CA证书内容添加到系统根证书池或自定义TLS配置的RootCAs中,不要直接忽略参数或写错参数读取逻辑。
  • 排查点4:域名匹配校验失败
    确认你连接时使用的bootstrap路由地址,和Broker证书的SAN(使用者可选名称)列表匹配,执行以下命令查看证书的SAN列表:
openssl s_client -connect <你的bootstrap路由地址>:443 < /dev/null | openssl x509 -noout -ext subjectAltName

如果地址不匹配,可以在Sarama的TLS配置中临时关闭InsecureSkipVerify(仅用于测试,生产环境不建议)验证是否是该问题导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:57:01