Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
卡夫卡SSL握手失败问题_Ssl_Apache Kafka_Certificate_Jks - Fatal编程技术网

卡夫卡SSL握手失败问题

卡夫卡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

我正在尝试在Kafka服务器上启用SSL身份验证。我跟在后面

遵循所有步骤,但在调用producer.bat文件将数据发送到主题时,我发现以下错误

错误[Producer clientId=console Producer]到节点的连接-1身份验证失败,原因是:SSL握手失败(org.apache.kafka.clients.NetworkClient)

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

我确实使用
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验证并打开一系列攻击。