我正在使用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)
有人可以帮助我吗?
答案 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解决了我的问题。
希望这会有所帮助。