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

在OpenShift上配置Camel HTTPS Sink Connector时遇证书路径无效错误

解决Camel HTTPS Sink Connector的证书路径验证错误

错误原因

出现can't find valid certificate path to request target是因为Kafka Connect容器的Java信任库中未包含目标HTTPS端点的CA证书,导致无法验证服务器证书合法性。

解决方案

1. 导出目标HTTPS端点的CA证书

使用openssl命令提取目标端点的证书:

openssl s_client -connect <目标端点主机>:<端口> </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > target-cert.pem

2. 让Kafka Connect信任该证书(二选一即可)

选项一:使用自定义信任库Secret

  • 从运行中的Connect Pod复制默认Java信任库到本地:
    oc cp <connect-pod名称>:/opt/kafka/config/cacerts ./my-cacerts
    
  • 将导出的证书导入自定义信任库(默认密码为changeit):
    keytool -importcert -file target-cert.pem -keystore ./my-cacerts -alias target-endpoint -storepass changeit -noprompt
    
  • 创建包含自定义信任库的Secret:
    oc create secret generic custom-truststore --from-file=my-cacerts
    
  • 修改Strimzi KafkaConnect资源,挂载Secret并指定Java信任库参数:
    在spec.template.containers下添加配置:
    volumeMounts:
      - name: truststore-volume
        mountPath: /opt/kafka/custom-truststore
    volumes:
      - name: truststore-volume
        secret:
          secretName: custom-truststore
    env:
      - name: JAVA_OPTS
        value: "-Djavax.net.ssl.trustStore=/opt/kafka/custom-truststore/my-cacerts -Djavax.net.ssl.trustStorePassword=changeit"
    

选项二:挂载证书到全局CA信任库

  • 创建包含证书的ConfigMap:
    oc create configmap target-ca-cert --from-file=target-cert.pem
    
  • 修改KafkaConnect资源,挂载ConfigMap并更新信任库:
    在spec.template.containers下添加配置:
    volumeMounts:
      - name: ca-cert-volume
        mountPath: /etc/pki/ca-trust/source/anchors/
    volumes:
      - name: ca-cert-volume
        configMap:
          name: target-ca-cert
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "update-ca-trust extract"]
    

3. 修正连接器配置的错误

  • 修正参数名:你配置中的camel.sink.path.htypUri是错误的,Camel HTTPS Sink Connector的正确参数应为camel.sink.endpoint.url,用于指定完整的HTTPS端点地址。
  • 修正转换器类名:key.converter和value.converter的类名需要区分大小写,正确值为org.apache.kafka.connect.storage.StringConverter。

修正后的完整连接器配置示例:

camel.sink.endpoint.httpMethod=POST
camel.sink.endpoint.url=https://<目标端点完整地址>
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.storage.StringConverter
topics=<你的主题名称>

内容的提问来源于stack exchange,提问作者אורי שימחוביץ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:28:02