在NiFi中启用TLS

时间:2017-07-19 16:29:53

标签: ssl apache-nifi

  1. 我通过运行以下命令启用了NiFi中的TLS,

    nifi-toolkit/nifi-toolkit-assembly/target/nifi-toolkit-1.4.0-SNAPSHOT-bin/nifi-toolkit-1.4.0-SNAPSHOT/bin/tls-toolkit.sh standalone -n "{my-ip},localhost" -C 'CN={my-ip}' -C 'CN=localhost' -o ./certs

  2. 这会在目录certs下创建TLS所需的文件。

  3. 我将目录certs下的文件移动到我机器中部署的conf文件夹中。

  4. 将证书安装到我的机器Keychain Access

  5. 现在使用bin/nifi.sh start启动服务器。我的服务器启动,我能够点击服务器,但我的请求未经授权。

  6. 我收到以下错误,

      

    未获得所请求资源的授权。联系系统   管理员。

    enter image description here

1 个答案:

答案 0 :(得分:3)

在Apache NiFi中启用TLS后,默认情况下不再启用匿名访问。您需要以用户身份进行身份验证才能访问UI / API。有三种身份验证机制可用 - 客户端证书,LDAP或Kerberos。在$NIFI_HOME/conf/authorizers.xml中配置初始管理员标识后(这将是您在TLS Toolkit命令中发出的客户端证书的确切CN),该用户可以验证并使用用户管理工具在NiFi中添加额外的用户。

您可以在NiFi Admin Guide中找到更多信息。布莱恩本德也写了detailed walkthrough of the process

关于您在上面发布的命令的一个注意事项 - 我不确定您的所需输出是什么,但该命令是为my-ip颁发服务器证书而另一个为hostname颁发服务器证书,但随后是两个客户端具有这些DN的证书。通常,您需要hostname的服务器证书(可能包含my-ip的SAN条目),以及具有CN=alopresto, OU=Apache NiFi等DN的客户端证书。

例如:

./bin/tls-toolkit.sh standalone 
  -n 'nifi.nifi.apache.org' 
  --subjectAlternativeNames '123.234.234.123' 
  -C 'CN=alopresto, OU=Apache NiFi' 
  -P password 
  -S password 
  -B password 
  -f ...conf/nifi.properties 
  -o ...conf/