nifi 1.15.3之后https成为了必选项 ,而且企业环境下也必须配置账密 但是nifi官网的文档写的语焉不详,分享一下避免大家踩坑
首先下载nifi对应版本的 tls密钥生成工具
名字就是nifi-toolkit-xxxx-bin.zip,最好和本体一起下载 。这个工具和本体之间有版本对应关系。并且一些老的版本下不着了 ,小版本差距不大可以用
解压后进入文件夹
bin/tls-toolkit.sh standalone -C 'CN=test, OU=NIFI' -n '172.31.255.213' --keyPassword hhh123 --keyStorePassword hhh123 --trustStorePassword hhh123 -o 'targat'
解释一下选项的意思
standalone 在一个命令中生成证书颁发机构、密钥库、信任库和nifi.properties文件。同理有Client/Server 这个选项则是使用一个证书颁发机构服务器,该服务器接受来自客户端的证书签名请求,对其进行签名,然后将生成的证书发回。客户端和服务器都通过共享密钥验证对方的身份,用不着
-C 生成适合在指定DN的浏览器中使用的客户端证书 里面的都是一些标记配置 ,按自己需要填写,比如CN=prod
-n 生成的证书节点名称 可以逗号分隔 生成一堆
-n 'nifi-node1,nifi-node2,nifi-node3,nifiregistry-node'
这个名称很重要,是你用来登录的时候使用的域名。登录这个节点就需要用这个名字。否则报错
比如配置的nifi-node1,就需要能在本地解析到对应的ip 用hosts或者域名解析dns都行
下面则是一些证书的密码 按需填写即可
最后-o 是输出的目录 也可以不要 但是会输出在当前目录下 很乱
进入生成的targat目录 可以看到生成的文件
把节点目录发送到各个节点
外面的文件可用可不用,都是一些https的key 用了会更舒服一点,懒得用了
直接进目录
里面有3个文件
keystore.jks nifi.properties truststore.jks
备份一下本身的 nifi.properties ,一定要备份
覆盖,单节点仅需要修改zk的配置
nifi.zookeeper.connect.string=10.0.2.2:2181
有kerberos的再加一个
nifi.kerberos.krb5.file=/etc/krb5.conf
集群下需要修改
nifi.zookeeper.connect.string=10.0.2.2:2181
nifi.cluster.is.node=true
有kerberos的再加一个
nifi.kerberos.krb5.file=/etc/krb5.conf
如果是首次搭建这会就可以启动了
如果是搭建完了添加的配置
需要删除conf下的flow.xml.gz,这是一些原来的缓存文件,每次改配置都要删掉
nifi.cluster.load.balance.host=
这个配置在生成的配置文件中为空,不知道有什么用处 我也没填
同时需要更新
bin/nifi.sh set-sensitive-properties-key xxxxxxxxx
这个key看一下原来的配置文件
nifi.sensitive.props.key 的内容
集群版每个节点都需要更新
更新完了启动
启动后先不忙登陆,设置一个初始账密
bin/nifi.sh set-single-user-credentials <username> <password>
然后再重启一下 登录域名:9443
这个域名就是上面配置的节点名称 比如我就是172.31.255.213:9443
用主机名就是nifi-node1:9443
会提示你证书不对 确定登录 这里可以自己配证书 我懒得搞了
然后就能见到登录页面 按账密登录即可 提示你账密无效的话重新设置一下 然后再重启一下 基本就搞定了
基础的账密就完成了
nifi其实还有完善的权限体系 下次再更新