Kafka SSL握手失败问题

问题描述 投票:1回答:3

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

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

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

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

引起:java.security.cert.CertificateException:找不到与localhost匹配的名称

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

ssl apache-kafka certificate jks
3个回答
3
投票

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


1
投票

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

the following thread上有一个很好的解释这个错误。


1
投票

我们遇到了以下错误,这可能是因为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设置为空字符串以恢复以前的行为。 Apache Kafka Notable changes in 2.0.0

解决方案:SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG,“”

© www.soinside.com 2019 - 2024. All rights reserved.