NiFi-Toolkit执行encrypt-config.sh后nifi.registry.db.password未加密问题求助
解决NiFi-Toolkit encrypt-config.sh未加密nifi.registry.db.password的问题
问题概述
执行NiFi-Toolkit的encrypt-config.sh初始化加密后,nifi-registry.properties文件中的nifi.registry.db.password仍保持明文状态。执行的命令如下:
$ ./nifi-toolkit-1.19.1/bin/encrypt-config.sh --nifiRegistry -b nifi-registry-1.19.1/conf/bootstrap.conf -r nifi-registry-1.19.1/conf/nifi-registry.properties -a nifi-registry-1.19.1/conf/authorizers.xml -p adminpassword
问题原因
NiFi Toolkit的encrypt-config.sh默认仅加密NiFi Registry预定义的敏感属性(如身份验证、授权相关密码),数据库连接密码这类自定义敏感属性不会被自动识别加密,需要显式指定要加密的属性名。
解决方案
修改加密命令,添加--property参数指定要加密的nifi.registry.db.password属性,具体步骤如下:
- 停止NiFi Registry(避免加密过程中配置文件被进程占用):
$ nifi-registry-1.19.1/bin/nifi-registry.sh stop
- 执行带属性指定的加密命令:
./nifi-toolkit-1.19.1/bin/encrypt-config.sh --nifiRegistry \ -b nifi-registry-1.19.1/conf/bootstrap.conf \ -r nifi-registry-1.19.1/conf/nifi-registry.properties \ -a nifi-registry-1.19.1/conf/authorizers.xml \ -p adminpassword \ --property nifi.registry.db.password
若需要加密多个自定义敏感属性,可多次添加
--property参数,例如--property prop1 --property prop2
验证加密结果:
打开nifi-registry-1.19.1/conf/nifi-registry.properties文件,检查nifi.registry.db.password的值是否已变为以ENC(开头的加密字符串。启动NiFi Registry并验证运行状态:
$ nifi-registry-1.19.1/bin/nifi-registry.sh start $ nifi-registry-1.19.1/bin/nifi-registry.sh status
额外注意事项
- 加密前建议备份
nifi-registry.properties和bootstrap.conf文件,防止配置丢失。 - 确保执行命令的用户对NiFi Registry配置目录拥有读写权限。
内容的提问来源于stack exchange,提问作者Dmitriy Kochetkov
相关产品推荐
相关产品推荐

