通过TLS将Kafka生产者/消费者连接到经纪人

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

我正在尝试为kafka经纪人设置TLS。我已经按照here的步骤进行操作,并能够使用TLS设置Kafka。 (在日志中,我看到配置端口的SSL条目)。

现在我面临连接生产者/消费者的问题。

  1. 我使用下面的命令创建了一个客户端密钥库, keytool -keystore client.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey
  2. 将CA证书添加到密钥库, keytool -keystore client.keystore.jks -alias CARoot -import -file ca-cert
  3. 在客户端中执行以下命令,其中ca-cert是服务器上使用的证书。 keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert keytool -keystore client.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey keytool -keystore client.keystore.jks -alias CARoot -import -file ca-cert
  4. producer.properties中添加了以下配置,
security.protocol=SSL
ssl.truststore.location=path to client.truststore.jks
ssl.truststore.password=<password>
ssl.keystore.location=path to client.keystore.jks
ssl.keystore.password=<password>
ssl.key.password=<password>
  1. console producer实用程序, ./kafka-console-producer.sh --broker-list 0.0.0.0:9092 --topic test --producer.config ../config/producer.properties

但是在运行util时出现以下错误,

WARN在身份验证期间终止与节点-1的连接。这可能表示由于凭据无效而导致身份验证失败。 (org.apache.kafka.clients.NetworkClient)

怀疑我在客户端配置中遗漏了一些东西。任何帮助将不胜感激。

ssl apache-kafka kafka-producer-api
1个回答
1
投票

您是否尝试使用客户端证书?相反,我建议,尝试没有客户证书。在这种情况下,您只需要以下条目,

producer.properties文件: -

security.protocol=SSL
ssl.truststore.location=/<path-to>/truststore.jks
ssl.truststore.type=JKS

在这里阅读更多相关信息 - http://kafka.apache.org/documentation/#security_configclients

对于客户端身份验证,kafka使用SASL,本文档的这一部分清楚地涵盖了它 - http://kafka.apache.org/documentation/#security_sasl

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