2017-07-19 54 views
0
  1. 启用TLS我启用TLS在NiFi通过运行下面的命令,在NiFi

    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服务器。我的服务器启动了,我可以打到服务器,但我的请求没有被授权。

我得到下面的错误,

不授权所请求的资源。管理员联系系统 。

enter image description here

回答

1

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

你可以在NiFi Admin Guide找到更多的信息。 Bryan Bende也写了一个detailed walkthrough of the process。有关命令

一个说明你上面贴 - 我不知道你的期望的输出是什么,但该命令发出了my-ip和其他服务器证书hostname,但随后两个客户端证书与DNS,并且掌握。一般而言,您需要hostname(可能带有my-ip的SAN条目)的服务器证书,以及等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/