我正在尝试为kafka经纪人设置TLS . 我已按照步骤here并能够使用TLS设置Kafka . (在日志中,我看到配置端口的SSL条目) .
现在我面临连接 生产环境 者/消费者的问题 .
- 我使用下面的命令创建了一个客户端密钥库,
keytool -keystore client.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey
- 将CA证书添加到密钥库,
keytool -keystore client.keystore.jks -alias CARoot -import -file ca-cert
- 在客户端中运行以下命令,其中
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
- 在
producer.properties
中添加了以下配置,
security.protocol = SSL
ssl.truststore.location = client.truststore.jks的路径
ssl.truststore.password = <密码>
ssl.keystore.location = client.keystore.jks的路径
ssl.keystore.password = <密码>
ssl.key.password = <密码>
- 跑
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)
怀疑我在客户端配置中遗漏了一些东西 . 任何帮助将不胜感激 .
1 回答
您是否尝试使用客户端证书?相反,我建议,尝试没有客户证书 . 在这种情况下,您只需要以下条目,
producer.properties
文件: -在这里阅读更多相关信息 - http://kafka.apache.org/documentation/#security_configclients
对于客户端身份验证,kafka使用SASL,本文档的这一部分清楚地涵盖了它 - http://kafka.apache.org/documentation/#security_sasl