Docker部署3节点NiFi集群+SSL后遇未受信任代理CN=localhost问题
解决NiFi OIDC认证后"Untrusted proxy CN=localhost, OU=NIFI"报错问题
问题背景
采用Docker桥接网络部署3节点NiFi集群(含nifi01、nifi02、nifi03、registry及nifi_zookeeper),通过SSH隧道localhost:8443:remotehost:6950访问UI;使用以下命令生成OIDC所需SSL证书:
./bin/tls-toolkit.sh standalone -n localhost --subjectAlternativeNames 'localhost,0.0.0.0,nifi01,nifi02,nifi03,nifi_registry'
已参照官方文档配置authorizers.xml并生成users.xml、authorizations.xml,OIDC单点登录认证流程正常,但完成认证后UI报错,NiFi访问日志显示错误:[Untrusted proxy CN=localhost, OU=NIFI]。
解决方案
1. 配置受信任代理DN
在每个NiFi节点的nifi.properties文件中,更新以下配置:
- 确保允许代理实体:
nifi.security.allow.proxied.entities=true - 将报错中的代理DN添加到受信任列表:
多个DN用英文逗号分隔,需包含所有可能作为代理的节点证书DN。nifi.security.proxied.entity.ssl.subject.dn=CN=localhost, OU=NIFI,CN=nifi01, OU=NIFI,CN=nifi02, OU=NIFI,CN=nifi03, OU=NIFI
2. 验证SSL证书SAN配置
通过以下命令检查生成的证书是否包含所需的主题备用名称(SAN):
keytool -printcert -file <证书存放目录>/localhost.crt | grep -A 10 "Subject Alternative Name"
确认输出中包含localhost、集群节点名称(nifi01/02/03)及远程主机标识,确保代理请求的主机名与证书SAN匹配。
3. 配置代理主机与上下文路径
在nifi.properties中设置反向代理相关参数,匹配SSH隧道的本地映射地址:
nifi.web.proxy.host=localhost:8443 nifi.web.proxy.context.path=/nifi
若NiFi UI的上下文路径非默认/nifi,需调整为实际路径。
4. 重启NiFi集群
修改配置后,依次重启所有NiFi节点,确保新配置生效。
内容的提问来源于stack exchange,提问作者StrangerThinks
相关产品推荐
相关产品推荐

