Kafka over ssl:没有名为`ListenerName(SSL)'的监听器

时间:2017-04-25 17:05:47

标签: ssl apache-kafka

我尝试将我的Kafka经纪人配置为在ssl下工作。我在所有经纪人中都有以下配置:

listeners=PLAINTEXT://0.0.0.0:9092, SSL://0.0.0.0:9093
advertised.host.name=my_host_ip
port=9092
ssl.truststore.location=/opt/kafka/kafka.server.truststore.jks
ssl.keystore.location=/opt/kafka/kafka.server.keystore.jks
ssl.key.password=123456
ssl.keystore.password=123456
ssl.truststore.password=123456

以及与我的ssl配置无关的其他一些定义。

在客户端配置中,我有以下内容:

security.protocol=SSL
ssl.truststore.location=/opt/kafka_2.12-0.10.2.0/config/ssl/kafka/client.truststore.jks
ssl.truststore.password=123456

使用端口9092(没有ssl)一切正常,但是当我尝试使用端口9093时 - 我收到以下错误,我无法将消息发布到Kafka主题:

2017-04-25T16:59:19.945801000Z [2017-04-25 16:59:19,857] ERROR [KafkaApi-2] Error when handling request {topics=null} (kafka.server.KafkaApis)
2017-04-25T16:59:19.945991000Z kafka.common.BrokerEndPointNotAvailableException: Broker `2` does not have listener with name `ListenerName(SSL)’

我在机器之间有ssl连接(用openssl检查)

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

我认为您正在暴露端口9092,但您的SSL配置为侦听9093.此外,如果我没记错,advertised.host.name是kafka 0.10.x中不推荐使用的参数

我建议您评论advertised.host.name=my_host_ipport=9092以及advertised.listeners=PLAINTEXT://<ip>:9092, SSL://<ip>:9093