You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nifi集群配置ZooKeeper SSL连接报NotSslRecordException求助

解决ZooKeeper 3.5.3与NiFi SSL连接的NotSslRecordException问题

这个错误本质是一端尝试建立SSL连接,另一端没有启用SSL或者配置不兼容,结合你使用的ZK 3.5.3(早期支持SSL的版本),可以按以下步骤排查修复:

1. 确认ZooKeeper服务器端的SSL配置是否正确

ZK 3.5.x版本启用SSL需要修改zoo.cfg,注意参数和旧版本完全不同,必须配置以下核心项:

# 使用Netty作为连接工厂(必须,默认的NIOServerCnxnFactory不支持SSL)
serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory
# 密钥库配置(ZK服务器的证书存储)
ssl.keyStore.location=/path/to/zookeeper.keystore.jks
ssl.keyStore.password=your_keystore_password
# 信任库配置(用于验证客户端证书)
ssl.trustStore.location=/path/to/zookeeper.truststore.jks
ssl.trustStore.password=your_truststore_password
# 客户端认证可选(如果需要强制客户端验证设为required)
ssl.clientAuth=optional

注意:3.5.3版本中ssl.*参数不需要加zookeeper.前缀,后续版本才调整为zookeeper.ssl.*,别搞错了!

2. 检查NiFi端的ZK客户端SSL配置

在NiFi的nifi.properties中,确保ZK相关的SSL参数正确配置:

# 开启ZK SSL
nifi.zookeeper.ssl.enabled=true
# NiFi作为ZK客户端的密钥库和信任库
nifi.zookeeper.ssl.keyStore=/path/to/nifi.keystore.jks
nifi.zookeeper.ssl.keyStorePassword=your_nifi_keystore_pw
nifi.zookeeper.ssl.trustStore=/path/to/nifi.truststore.jks
nifi.zookeeper.ssl.trustStorePassword=your_nifi_truststore_pw
# 确保ZK连接字符串正确(不需要改端口,SSL和非SSL共用2181,通过配置区分)
nifi.zookeeper.connect.string=zk-node-ip:2181

另外要注意:NiFi自带的ZK客户端版本要和ZK服务器版本兼容,比如你用ZK 3.5.3,NiFi最好用1.9.x或以上版本,避免客户端不支持SSL特性。

3. 验证证书信任链的完整性

NotSslRecordException也可能是证书不被信任导致的:

  • 将ZK服务器的证书导入到NiFi的信任库中
  • 如果ZK开启了ssl.clientAuth=required,需要将NiFi的证书导入到ZK的信任库中
  • 检查证书的CN字段是否匹配主机名,避免主机名验证失败(如果不需要主机名验证,可以在NiFi中添加nifi.zookeeper.ssl.hostname-verification=false,但生产环境不推荐)

4. 测试ZK SSL连接的可用性

先脱离NiFi,直接用ZK自带的客户端测试SSL连接是否正常,执行命令:

zkCli.sh -server zk-node-ip:2181 -ssl \
  -keyStore /path/to/nifi.keystore.jks \
  -keyStorePassword your_nifi_keystore_pw \
  -trustStore /path/to/nifi.truststore.jks \
  -trustStorePassword your_nifi_truststore_pw

如果这个命令能成功连接ZK,说明ZK端配置没问题,问题出在NiFi;如果连接失败,重点排查ZK的配置和证书。

5. 考虑升级ZooKeeper版本

ZK 3.5.3是较早的支持SSL的版本,存在一些已知的SSL相关bug(比如Netty兼容性问题、参数解析错误),建议升级到3.5.9或更高的稳定版本,这些版本修复了很多早期SSL的问题,能避免一些莫名其妙的连接错误。

内容的提问来源于stack exchange,提问作者CMPE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:01:58