Apache kafka 2.0.0版本-由于以下原因,与节点1的连接身份验证失败:

时间:2018-10-01 11:43:05

标签: ssl apache-kafka

我正在使用kafka版本kafka_2.12-2.0.0,并在启用SSL身份验证后收到以下错误。在以前的版本中似乎工作正常:kafka_2.12-1.1.0、2.11-0.10.2.2等。

我不明白为什么它不能与最新版本2.11-0.2.0.0一起使用?有没有人观察到我现在使用2.0.0版本面临的相同问题。

下面是我的测试环境docker配置文件。

listeners=PLAINTEXT://:9092,SSl://:9093
ssl.client.auth=required
ssl.keystore.location=/path/to/server.keystore
ssl.keystore.password=<Key store password>
ssl.key.password = <private key password>
ssl.truststore.location=/path/to/truststore.keystore
ssl.truststore.password=<trust store password>
security.inter.broker.protocol=SSL

这是错误:

[2018-10-01 09:33:38,984] ERROR [Controller id=1, targetBrokerId=1] Connection to node 1 failed authentication due to: SSL handshake failed (org.apache.kafka.clients.NetworkClient)

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:9)

没有更多细节很难确定,但是2.0.0引入了与SSL连接处理相关的行为更改。

2.0.0 upgrade notes中所述,代理设置ssl.endpoint.identification.algorithm现在设置为https。这样可以强制进行主机名验证,以防止“中间人”攻击。

要恢复以前的行为,您需要将其明确设置为空字符串。

ssl.endpoint.identification.algorithm=

答案 1 :(得分:0)

也面临着类似的问题。我的问题是,我正在运行Kafka服务器1.1.1,并且正在使用Kafka客户端2.1.0来推送记录。将Kafka客户端更改为1.1.1解决了我的问题。

希望这会有所帮助。