【问题标题】:Invoke HTTP error : certification path to requested target调用 HTTP 错误:请求目标的认证路径
【发布时间】:2020-05-22 11:53:54
【问题描述】:

我有一个使用 cloudera 管理的集群,我已经按照教程安装了 CFM (Nifi);还使用 TLS/SSL 保护 nifi 节点。 当我尝试使用 invokeHTTP 处理器时,我收到了以下公告:

InvokeHTTP[id=3c2dea7a-0172-1000-0000-0000350072f1] 由于作为源处理器遇到异常而产生处理器:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun .security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求的有效证书路径目标

我尝试过使用和不使用安全集群(在 Nifi CA 工具包服务的帮助下),但没有任何成功。 我还尝试创建一个控制器服务来强制信任和密钥库的路径。

现在我不知道该怎么做,有什么想法吗?

感谢您的帮助,

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    @pdeuxa 您需要为要连接的资源配置 SSLContextService 而不是 nifi 集群。您可以通过将资源的 SSL 证书添加到本地 nifi 信任库来执行此操作,然后告诉 NiFi 信任库在哪里。这些文件需要为 nifi 正确拥有并复制到所有 nifi 节点。

    【讨论】:

    • 史蒂文,谢谢你的回答;我会尝试你的建议。我之前在 docker 环境中使用过 Nifi,并且 http 请求无需配置任何附加服务即可工作。我真的不明白为什么我必须对 cloudera 集群这样做,而且对于公共 http 地址。
    • 公共 HTTP(S) 地址正在提供证书,而您的处理器没有任何已知的良好证书来验证该证书。通过授予它对 Java cacerts(已知良好证书的默认集合)的访问权限,它可以根据该列表检查提供的证书并进行验证。
    【解决方案2】:

    它适用于 SSLcontext 配置!

    我在每个 nifi 节点上从 java jdk 复制了 cacert,并将 cacert 的所有权授予 nifi 用户。

    在 SSL 上下文配置中,我为 keystore 和 trustore 添加了复制的 cacert 的路径(java cacert 的默认密码是“changeit”)。

    然后我强制在“http”上调用http“代理类型”属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-07
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 2015-02-13
      • 2019-10-15
      • 2021-06-01
      相关资源
      最近更新 更多