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

Strimzi Kafka Connect配置Debezium MongoDB源连接器遇TLS证书错误

解决Strimzi Kafka Connect + Debezium MongoDB TLS握手失败问题

可能的原因及修复步骤

1. 确认证书文件格式与内容正确性

  • 检查挂载的.pem文件是否包含完整CA证书链,若存在中间CA,需确保根CA到中间CA的所有证书都在文件内,不能仅保留叶子证书。
  • 执行命令验证证书内容:
    kubectl exec kc-pod -- cat /opt/kafka/external-configuration/connector-config/your-ca-file.pem | openssl x509 -text -noout
    
    确认输出的Issuer和Subject信息与Mongo集群的CA配置匹配。

2. 修正MongoDB连接字符串参数

  • 需显式指定tls=true参数,不能仅依赖tlsCAFile,完整连接字符串示例:
    mongodb://user:password@mongo-host:27017/dbname?tls=true&tlsCAFile=/opt/kafka/external-configuration/connector-config/your-ca-file.pem
    
  • 严格核对路径与Pod中证书的实际路径,注意大小写和文件名拼写。

3. 验证Kafka Connect的Secret挂载配置

  • 检查Kafka Connect的YAML配置,确认Secret挂载到connector-config目录且为只读模式:
    externalConfiguration:
      volumes:
        - name: connector-config
          secret:
            secretName: your-mongo-ca-secret
            defaultMode: 420
    
  • 确保Secret中的密钥名称与Pod内文件名完全一致,比如Secret里的ca.pem对应Pod内/opt/kafka/external-configuration/connector-config/ca.pem。

4. 手动导入证书到JVM信任库(备选方案)

若上述步骤无效,可手动将CA证书导入Kafka Connect使用的JVM信任库:

  • 进入Kafka Connect Pod:
    kubectl exec -it kc-pod -- /bin/bash
    
  • 导入证书到默认信任库(需root权限):
    keytool -importcert -file /opt/kafka/external-configuration/connector-config/your-ca-file.pem -alias mongo-ca -keystore /usr/lib/jvm/zulu11-ca/lib/security/cacerts -storepass changeit -noprompt
    
  • 重启Kafka Connect Pod使信任库变更生效。

5. 检查MongoDB集群的双向TLS配置

  • 若Mongo集群启用双向TLS,需在连接字符串中添加tlsCertificateKeyFile参数指定客户端证书和密钥路径,同时确保对应证书文件已挂载到Pod中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:45:42