【问题标题】:Secured NiFi won´t comunicate with NiFi Registry安全的 NiFi 不会与 NiFi Registry 通信
【发布时间】:2021-03-24 18:09:59
【问题描述】:

我在 Docker 中运行的独立安全 NiFi 1.12.1 运行良好。我成功地使用了站点到站点的远程处理器、Nifi 公告的站点到站点转发、调用 NiFi API 进行自我监控等。我通过证书登录。到目前为止一切都很好。

当我尝试使用NiFi Registry 时出现问题。我可以访问两个实例:安全和不安全。

无论我指定的确切格式是什么(FQDN,只是一个名称,是否带有 /nifi-registry),当我尝试访问(例如,通过导入进程组)either NiFi Registry来自 NiFi,它以o.a.n.w.a.config.NiFiCoreExceptionMapper org.apache.nifi.web.NiFiCoreException: Unable to obtain listing of buckets: java.net.ConnectException: Connection refused (Connection refused). Returning Conflict response. 失败。日志中只是带有enormous stack-trace 的这条消息,仅此而已。

我检查了所有证书,它们看起来都正常(证书路径,证书用于 clientAuth 以及 serverAuth)。我什至用它们自己登录 NiFi ...... 最让我惊讶的是,它适用于站点到站点协议、API 调用等,但不适用于 NiFi Registry。

请问您不知道可能是什么问题吗?或者有什么想法可以检查?

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    TL;博士:

    使用 IP 地址或编辑 /etc/hosts。问题在于主机名到 IP 地址的转换。


    当我尝试通过 InvokeHTTP 直接从 NiFi 访问 NiFi Registry 的 API 时,我注意到一件重要的事情 - 不同容器中没有任何响应我(failed to connect 目标):

    #Safe NiFi - the one I am troubleshooting
    https://<my FQDN>:8443/nifi-api/flow/registries
    
    #Safe NiFi Registry (another container) - the one I am trying connect to
    https://<my FQDN>:18443/nifi-registry-api/buckets
    
    #Unsafe NiFi (another container) - just for test
    http://<my FQDN>:28080/nifi-api/flow/registries
    
    #Unsafe NiFi Registry (another container) - just for test
    http://<my FQDN>:38080/nifi-registry-api/buckets
    

    然后我恍然大悟:为了解决站点到站点连接的问题(容器名称与为托管机器颁发的 HTTPS 证书的差异)我给了 容器 与托管相同的名称Docker 机器。为了验证我使用了 IP 地址而不是 FQDN 并且它有效。还检查了/etc/hosts 确认了这一点 - FQDN 指向容器的 IP 地址而不是 Docker 主机。

    因此,一个给定的 FQDN 在容器中被解析为 localhost,而在其他任何地方都被解析为 Docker 主机。而且由于在 NiFi Registry 端口上的 localhost 上没有任何听...

    因此,作为一种解决方案,要么修改 /etc/hosts 以删除违规行,要么使用 IP 地址强制遍历 Docker 主机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多