我通过运行以下命令在 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
这在目录下创建了 TLS 所需的文件certs。
我将目录下的文件移动certs到conf我机器中部署的文件夹中。
将证书安装到我机器的Keychain Access.
现在使用bin/nifi.sh start. 我的服务器启动了,我可以访问服务器,但是我的请求没有被授权。
我收到以下错误,
未授权使用所请求的资源。联系系统管理员。
在 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)
| 归档时间: |
|
| 查看次数: |
3312 次 |
| 最近记录: |