我有一个使用ssl的kafka客户端。
bootstrap.servers=kafka1:9093
security.protocol=SSL
ssl.truststore.location=/var/private/ssl/kafka.client.truststore.jks
ssl.truststore.password=test1234
ssl.keystore.location=/var/private/ssl/kafka.client.keystore.jks
ssl.keystore.password=test1234
ssl.key.password=test1234Circumstances:
jks文件定期升级,因为它们会在一段时间后过期。因此,JKS在文件系统上一直都是最新的。
但是kafka客户端仍然使用旧的jks,因为它只在创建客户机时才读取它。
过期的JKS是否重要:
问题:
当会话中间kafka broker瘫痪并恢复正常时,握手过程再次开始,而不需要从文件系统读取JKS,从而导致握手错误。
这将导致不可靠的KafkaClient (如果SSL已经到位)。
解决办法是什么?
有类似ssl.keystore.forceread=true的东西吗?
发布于 2021-08-31 18:15:43
虽然org.apache.kafka.common.network.SslChannelBuilder提供了reconfigure方法,但它似乎只被卡夫卡代理代码使用。
对于客户端,您似乎需要重新启动它们,因为ChannelBuilder实例在启动时只配置了一次。
参考资料(Kafka 2.8):
https://stackoverflow.com/questions/68999610
复制相似问题