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

Apache NiFi连接Confluent Cloud时trustAnchors参数非空错误

解决Apache NiFi连接Confluent Cloud时的trustAnchors错误

错误详情

从pkckg.eastus.azure.confluent.cloud/20.23返回意外错误>java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
org.apache.kafka.common.network.Selector [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] 从pkc-56d1g.eastus.a返回意外错误>java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
2022-12-09 01:01:32,078 WARN [Timer-Driven Process Thread-7] org.apache.kafka.clients.NetworkClient [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] 与节点-1(xxxx.eastus.azure.confluent.cloud/20.2)的连接>2022-12-09 01:01:32,078 WARN [Timer-Driven Process Thread-7] org.apache.kafka.clients.NetworkClient [Consumer clientId=consumer-TestConnection-1, groupId=TestConnection] Bootstrap broker pkc-56d1g.eastus.azure.confluent.cloud:9092(id: >2022-12-09 01:01:33,055 WARN [kafka-producer-network-thread | producer-4] org.apache.kafka.common.network.Selector [Producer clientId=producer-4] 从pkc-56d1g.eastus.azure.confluent.cloud/20.237.15.111返回意外错误;关闭连接>java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.base/sun.security.validator.PKIXValidator.(PKIXValidator.java:102)
...(省略重复栈跟踪)
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.base/java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
...(省略重复栈跟踪)

解决方案

该错误是JVM无法找到有效信任证书库验证Confluent Cloud的SSL证书导致,按以下步骤排查修复:

  • 确认SSL上下文服务配置
    在PublishKafka关联的StandardRestrictedSSLContextService中:

    1. 设置Truststore Filename为NiFi所用JVM的默认信任库路径,比如/opt/nifi/jre/lib/security/cacerts(路径根据实际安装位置调整)
    2. 填写Truststore Password,默认值为changeit,若修改过则用对应密码
    3. 确保Truststore Type设为JKS
  • 验证信任证书库有效性
    用keytool检查信任库是否包含Confluent Cloud证书的根CA(DigiCert):

    keytool -list -keystore /opt/nifi/jre/lib/security/cacerts -storepass changeit | grep -i digicert
    

    若无输出,需导入DigiCert根证书到信任库:

    # 下载根证书
    curl -O https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
    # 导入到信任库
    keytool -importcert -alias digicertroot -file DigiCertGlobalRootCA.crt.pem -keystore /opt/nifi/jre/lib/security/cacerts -storepass changeit -noprompt
    
  • 检查文件权限
    确保NiFi运行用户对信任库文件(cacerts)有读权限:

    chown nifi:nifi /opt/nifi/jre/lib/security/cacerts
    chmod 644 /opt/nifi/jre/lib/security/cacerts
    
  • 避免冲突配置
    不要在PublishKafka的Advanced Kafka Producer/Consumer Properties中手动设置ssl.truststore.location、ssl.truststore.password等参数,这些会覆盖SSL上下文服务的配置引发冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:51:09