在 NiFi 中启用 TLS

Kan*_*thy 2 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. 这在目录下创建了 TLS 所需的文件certs

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

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

  5. 现在使用bin/nifi.sh start. 我的服务器启动了,我可以访问服务器,但是我的请求没有被授权。

我收到以下错误,

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

在此处输入图片说明

And*_*ndy 5

在 Apache NiFi 中启用 TLS 后,默认情况下不再启用匿名访问。您需要以用户身份进行身份验证才能访问 UI/API。提供了三种身份验证机制——客户端证书、LDAP 或 Kerberos。一旦配置了一个初始管理员身份$NIFI_HOME/conf/authorizers.xml(这将是您在TLS工具箱命令颁发的客户端证书的确切CN),用户可以验证和使用用户管理工具NiFi添加其他用户。

您可以在NiFi 管理指南 中找到更多信息。Bryan Bende 还编写了该过程详细演练

关于您在上面发布的命令的一个说明 - 我不确定您想要的输出是什么,但是该命令正在为my-ip和另一个为颁发服务器证书hostname,但随后也为带有这些 DN 的两个客户端证书颁发了证书。通常,您需要一个服务器证书hostname(可能带有 SAN 条目my-ip)和一个客户端证书,其 DN 类似于CN=alopresto, OU=Apache NiFi.

例如:

./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/
Run Code Online (Sandbox Code Playgroud)