2017-07-19 76 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/