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

Confluent Platform从5.0.0升级至5.5.1后Kafka Broker出现SSL握手失败问题

Confluent Platform 5.0.0升级至5.5.1后SSL监听器频繁握手失败问题解决

问题背景

将Confluent Platform(CP)从5.0.0版本升级至5.5.1版本,集群采用GSSAPI作为安全协议,配置两个监听器:SASL_PLAINTEXT和SSL。升级后每10秒出现SSL握手失败的INFO日志,但业务客户端连接SSL监听器生产消费完全正常。

核心配置

# SASL相关配置
sasl.enabled.mechanisms=GSSAPI
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.kerberos.service.name=kafka
zookeeper.sasl.enabled=true
#confluent.metrics.reporter.sasl.mechanism=GSSAPI

# SSL相关配置
ssl.truststore.location=/app/certs/kafka.truststore.jks
ssl.truststore.password=<脱敏处理>
ssl.keystore.location=/app/certs/broker11.jks
ssl.keystore.password=<脱敏处理>
ssl.key.password=<脱敏处理>
ssl.client.auth=required

# 其他配置
security.inter.broker.protocol=SASL_PLAINTEXT
listeners=SASL_PLAINTEXT://broker1.uat.tel.be:9092,SSL://broker1.uat.tel.be:9093
advertised.listeners=SASL_PLAINTEXT://broker1.uat.tel.be:9092,SSL://broker1.uat.tel.be:9093

异常现象

  • 每10秒重复出现SSL握手失败日志,失败请求来源为集群内其他Broker节点IP
  • openssl s_client -connect broker1.uat.tel.be:9093 验证SSL监听器证书链正常,返回码为0
  • 所有业务客户端连接SSL监听器生产消费完全正常
  • 开启SSL debug日志后核心报错为:Empty server certificate chain、Received fatal alert: bad_certificate

根因分析

报错由CP内置的Confluent Metrics Reporter组件触发:

  • CP 5.2+版本后,Metrics Reporter默认每10秒上报一次集群指标,未单独配置通信协议时会尝试访问SSL监听器
  • 集群SSL监听器配置了ssl.client.auth=required,要求客户端必须携带合法证书,而未配置参数的Metrics Reporter请求SSL端口时未携带客户端证书,触发校验失败
  • Broker间通信默认走SASL_PLAINTEXT监听器,不影响集群正常运行,业务客户端配置了合法证书所以访问正常

额外注意:检查你实际配置文件中ssl.truststore.password、ssl.keystore.password、ssl.key.password三个参数是否存在多余的等于号,正常配置应为单等于号,若为实际配置错误需先修正。

解决方案

可任选以下一种方案配置后滚动重启Broker即可解决:

方案1:Metrics Reporter走SASL_PLAINTEXT监听器(推荐,和Broker间通信协议保持一致)

补充如下配置:

confluent.metrics.reporter.security.protocol=SASL_PLAINTEXT
confluent.metrics.reporter.sasl.mechanism=GSSAPI
confluent.metrics.reporter.sasl.kerberos.service.name=kafka
confluent.metrics.reporter.bootstrap.servers=SASL_PLAINTEXT://broker1.uat.tel.be:9092, SASL_PLAINTEXT://broker2.uat.tel.be:9092 # 补充集群所有节点的SASL_PLAINTEXT地址

方案2:Metrics Reporter走SSL监听器

补充SSL客户端证书相关配置:

confluent.metrics.reporter.security.protocol=SSL
confluent.metrics.reporter.ssl.truststore.location=/app/certs/kafka.truststore.jks
confluent.metrics.reporter.ssl.truststore.password=<你的truststore密码>
confluent.metrics.reporter.ssl.keystore.location=/app/certs/broker11.jks
confluent.metrics.reporter.ssl.keystore.password=<你的keystore密码>
confluent.metrics.reporter.ssl.key.password=<你的证书私钥密码>

验证

配置生效后观察10分钟,确认SSL握手失败日志不再产生,同时业务读写、集群指标采集均正常即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:30:00