Kafka SSL握手失败问题

时间:2018-12-04 13:50:55

标签: ssl apache-kafka certificate jks

我正在尝试在我的Kafka服务器上启用SSL身份验证。我正在遵循以下文档(链接)中的7.2节。

http://kafka.apache.org/documentation.html#security_ssl

执行了所有步骤,但是在调用producer.bat文件将数据发送到主题时,出现以下错误。

  

错误 [生产者clientId = console-producer]由于以下原因,与节点-1的连接身份验证失败:SSL握手失败(org.apache.kafka.clients.NetworkClient)

     

原因: java.security.cert.CertificateException:未找到与本地主机匹配的名称

     

注意:我已经使用CN = localhost创建了该证书。

5 个答案:

答案 0 :(得分:3)

可以通过将ssl.endpoint.identification.algorithm设置为客户端上的空字符串来禁用服务器主机名验证

答案 1 :(得分:1)

通常 java.security.cert.CertificateException:未找到与本地主机匹配的名称,这意味着证书中的主机名与服务器的主机名不匹配。

the following thread上对此错误有很好的解释。

答案 2 :(得分:1)

对我来说,这是输入Keytool的名字和姓氏的问题

Please check this

答案 3 :(得分:0)

我们遇到了以下错误,这可能是因为Kafka版本从1.x升级到了2.x。

javax.net.ssl.SSLHandshakeException:常规SSLEngine问题... javax.net.ssl.SSLHandshakeException:常规SSLEngine问题... java.security.cert.CertificateException:找不到与***相匹配的名称

[Producer clientId = producer-1]由于以下原因,与节点-2的连接验证失败:

  

ssl.endpoint.identification.algorithm的默认值已更改为https,它将执行主机名验证(否则可能会发生中间人攻击)。将ssl.endpoint.identification.algorithm设置为空字符串以恢复以前的行为。 Apache Kafka Notable changes in 2.0.0

解决方案: SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG,“”

答案 4 :(得分:0)

刚刚设置 ssl.endpoint.identification.algorithm = 它可以帮助您。