首页 > 解决方案 > 如何在kafka集群中启用多个监听器

问题描述

我有一个 3 节点的 Kafka 集群。我已启用SASL_PLAINTEXT,它与 Port 一起工作正常6667。现在我想为同一个集群中的不同端口启用 SSL。我已启用 trustore 和 Keystore 证书。我从代理端做了以下配置。

listeners : SSL://localhost:6668
security.inter.broker.protocol : SSL
ssl.key.password : xxxx
ssl.keystore.location : /root/kafka.server.keystore.jks
ssl.keystore.password   : xxxxx
ssl.truststore.location   : /root/kafka.server.truststore.jks
ssl.truststore.password   : xxxxxx
ssl.keystore.type : JKS
ssl.truststore.type : JKS

我也给予了许可。我得到以下错误

Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /root/kafka.server.keystore.jks of type JKS

Caused by: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /root/kafka.server.keystore.jks of type JKS

Caused by: java.io.FileNotFoundException: /root/kafka.server.keystore.jks (Permission denied)

标签: sslapache-kafkaapache-kafka-security

解决方案


引起:java.io.FileNotFoundException:/root/kafka.server.keystore.jks(权限被拒绝)

错误跟踪相当清晰。/root/kafka.server.keystore.jks进程无法访问。请注意,该过程通常在不同的用户上运行,我怀疑密钥库是由不同的用户创建的。


确保运行该进程的用户具有足够的读取权限/root/kafka.server.keystore.jks。实现此目的的一种方法是更改​​文件的所有权:

sudo chown -R userWhoRunsTheProcess:userGroup /root/kafka.server.keystore.jks

推荐阅读