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

Sat*_*a_1 10 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
Run Code Online (Sandbox Code Playgroud)

这是错误:

[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)
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗 ?

Mic*_*son 15

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

2.0.0升级说明中所述,代理设置ssl.endpoint.identification.algorithm现在设置为https.这会强制执行主机名验证,以防止"中间人"攻击.

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

ssl.endpoint.identification.algorithm=
Run Code Online (Sandbox Code Playgroud)

  • 它是ssl.endpoint.identification.algorithm =,没有双引号。 (3认同)