参考地址:https://blog.csdn.net/m0_58786911/article/details/146958998
参考地址:https://blog.csdn.net/LSW_JAVADP/article/details/132657208
一、系统准备
shell>>mkdir -p /data/app/postgres
shell>>mkdir -p /data/app/nifi
shell>>mkdir -p /data/app/nifitemp
shell>>mkdir -p /data/app/atlas
shell>>cd /data/app
###本教程是2.5.0版本
shell>>docker pull apache/nifi:lastest
二、部署NiFi-TEMP拉取挂载文件
shell>>docker run -d --name nifi-temp \
-e SINGLE_USER_CREDENTIALS_USERNAME=admin \
-e SINGLE_USER_CREDENTIALS_PASSWORD=Nifi@SecurePass123 \
apache/nifi:latest
复制容器文件
shell>>docker cp nifi-temp:/opt/nifi/nifi-current/conf /data/app/nifi/conf
shell>>docker cp nifi-temp:/opt/nifi/nifi-current/database_repository /data/app/nifi/database_repository
shell>>docker cp nifi-temp:/opt/nifi/nifi-current/content_repository /data/app/nifi/content_repository
shell>>sudo chmod -R 777 /data/app/nifi
shell>>chown -R 1000:1000 /data/app/nifi
shell>>docker rm -f nifi-temp
三、部署nifi正式(含持久化)
shell>>>docker run -d \
--name nifi \
-v /data/app/nifi/conf:/opt/nifi/nifi-current/conf \
-v /data/app/nifi/database_repository:/opt/nifi/nifi-current/database_repository \
-v /data/app/nifi/content_repository:/opt/nifi/nifi-current/content_repository \
-e SINGLE_USER_CREDENTIALS_USERNAME=admin \
-e SINGLE_USER_CREDENTIALS_PASSWORD=Nifi@SecurePass123 \
-p 8080:8080 \
-p 8443:8443 \
apache/nifi:latest
查看日志
shell>>docker logs -f --tail 100 nifi
此时如果访问会显示400错误,因为证书问题。如图:

四、创建证书
删除原有的旧证书
shell>>cd /data/app/nifi/conf
shell>>rm -rf *.p12
创建证书
shell>>openssl genpkey -algorithm RSA -out nifi.key
Country Name (2 letter code) [AU]: CN # 国家/地区名称(必须填写,使用两位字母代码,如CN代表中国)
State or Province Name (full name) [Some-State]: Beijing # 省份或州名称(必须填写,填写完整名称)
Locality Name (eg, city) []: Beijing # 城市名称(可选,如果不填,字段为空)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Hubu # 组织名称(必须填写,通常为公司名称)
Organizational Unit Name (eg, section) []: IT Department # 组织部门名称(可选)
Common Name (e.g. server FQDN or YOUR name) []:YOUR_SERVER_IP(168.192.10.68) # 服务器主机名或IP地址(必须填写)
Email Address []: admin@example.com # 电子邮件地址(可选)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <留空> # 挑战密码(可选,可以留空)
An optional company name []: <留空> # 可选的公司名称(可选,可以留空)
使用私钥和CSR 创建自签名证书,设置有效期为3650天:
Shell>>openssl x509 -req -days 3650 -in nifi.csr -signkey nifi.key -out nifi.crt
将私钥和证书合并为 PKCS12 格式文件:
Shell>>openssl pkcs12 -export -in nifi.crt -inkey nifi.key -out nifi.p12 -name nifi -password pass:abcdef123456

修改nifi.properties 文件,配置敏感信息加密相关参数:
nifi.sensitive.props.key=abcdef123456
nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
nifi.security.autoreload.enabled=false
nifi.security.autoreload.interval=10 secs
配置证书路径和密码:
nifi.security.keystore=./conf/nifi.p12
nifi.security.keystoreType=PKCS12
nifi.security.keystorePasswd=abcdef123456
nifi.security.keyPasswd=abcdef123456
nifi.security.truststore=./conf/nifi.p12
nifi.security.truststoreType=PKCS12
nifi.security.truststorePasswd=abcdef123456
重启容器
shell>>docker restart nifi