ssl-certificate - APACHE NIFI 调用HTTP 获取 token 问题

标签 ssl-certificate apache-nifi

我有一个带有 3 个节点的安全集群 NIFI,配置了 truststore.jks 和 keystore.jks

在我的invokeHTTP 中,我为https 设置了带有 keystore 和信任库的“StandardSSLContextService”。

  • 当我尝试 https://nifi:9443/nifi-api/controller/config 时,invokeHTTP 有效
  • 但当我尝试“https://auth_server/oauth/access_token”时不起作用

  • 因此,当我尝试使用 invokeHTTP 获取 token 但失败并出现此错误时:
    sun.security.validator.ValidatorException: PKIX path building failed:      
    
    sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    

    感谢您的帮助

    最佳答案

    StandardSSLContextService可以配置信任库,即 Java KeyStore包含 TrustedCertEntry 集合的对象对象——每个对象都持有可信实体的公钥和证书信息。当 Apache NiFi 尝试通过 HTTPS 联系某些其他端点或服务时,它会评估接收到的识别服务的证书并尝试验证该证书。如果端点证书不直接包含在信任库中,它会检查哪个证书签署了叶证书,并验证那个证书。此过程继续沿证书链向上,直到找到受信任的证书或没有证书。

    您收到的错误消息指出无法验证链中的任何证书。正如 daggett 指出的那样,您可以手动将要验证的服务证书导入自定义信任库。如果这是公共(public) Internet 上提供的服务并由普遍信任的证书颁发机构 (CA) 签名,您也可以指向您的 StandardSSLContextService到 Java 提供的默认列表。 cacerts truststore 会自动包含在内,并且具有与现代浏览器类似的受信任条目列表。它位于 $JAVA_HOME/jre/lib/security/cacerts .您可以确定 $JAVA_HOME 的值适用于您的操作系统和 Java 版本。

  • 信任库文件名: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/security/cacerts (示例)
  • 信任库密码: changeit (默认值)
  • 信任库类型: JKS
  • 关于ssl-certificate - APACHE NIFI 调用HTTP 获取 token 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45916412/

    相关文章:

    ssl - 节俭 ssl python 服务器

    apache-nifi - 从InvokeHTTP POST获得响应

    hadoop - 尼菲 : how to use fileFileter for fetching files from hadoop?

    php - 忽略 Zend php 中的 SSL 证书

    Tomcat8 SSL查询

    java - weblogic ssl 通信可能接受所有证书吗?

    httpresponse - 如何将 apache nifi 流文件添加到 httpresponse 中

    java - Nifi 定制处理器显示错误 "the local variable flowfile cannot be assigned"

    javascript - 尼菲 : code in executeScript processor doesn't work properly

    ssl - OpenSSL 中的自签名证书是什么意思