卡夫卡SSL握手失败问题
我正在尝试在Kafka服务器上启用SSL身份验证。我跟在后面 遵循所有步骤,但在调用producer.bat文件将数据发送到主题时,我发现以下错误 错误[Producer clientId=console Producer]到节点的连接-1身份验证失败,原因是:SSL握手失败(org.apache.kafka.clients.NetworkClient) 原因:java.security.cert.CertificateException:未找到与本地主机匹配的名称 我确实使用卡夫卡SSL握手失败问题,ssl,apache-kafka,certificate,jks,Ssl,Apache Kafka,Certificate,Jks,我正在尝试在Kafka服务器上启用SSL身份验证。我跟在后面 遵循所有步骤,但在调用producer.bat文件将数据发送到主题时,我发现以下错误 错误[Producer clientId=console Producer]到节点的连接-1身份验证失败,原因是:SSL握手失败(org.apache.kafka.clients.NetworkClient) 原因:java.security.cert.CertificateException:未找到与本地主机匹配的名称 我确实使用CN=localh
CN=localhost
创建了证书,通常是java.security.cert.CertificateException:找不到与localhost匹配的名称意味着证书中的主机名与服务器的主机名不匹配
对此错误有一个很好的解释:通过在客户端上将
ssl.endpoint.identification.algorithm
设置为空字符串,可能会禁用服务器主机名验证。我们遇到以下错误,这可能是因为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握手失败
ssl.endpoint.identification.algorithm的默认值已更改为https,它执行主机名验证(否则可能会发生中间人攻击)。将ssl.endpoint.identification.algorithm设置为空字符串以恢复以前的行为
解决方案:
SslConfigs.SSL\u ENDPOINT\u IDENTIFICATION\u ALGORITHM\u CONFIG,“刚刚设置
ssl.endpoint.identification.algorithm=
它可以帮助你
即,使用空值:
ssl.endpoint.identification.algorithm=
对我来说,输入Keytool的名字和姓氏是一个问题
我也遇到了同样的问题,并在Ambari的server.properties文件“Custom kafka broker”部分中,将ssl.endpoint.identification.algorithm和listener.name.internal.ssl.endpoint.identification.algorithm设置为空字符串。我在所有3个节点上重新启动了Kafka,但此错误仍然存在。有什么想法吗?一行是“ssl.endpoint.identification.algorithm=”,不要在后面添加任何内容=实际上这就是解决方案。您需要将该字段留空以跳过验证。请注意,这样做被认为是一种不好的做法,不应在生产中使用,因为它会禁用ssl验证并打开一系列攻击。