我正在尝试为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=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>
运行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)
怀疑我在客户端配置中遗漏了一些东西。任何帮助将不胜感激。
答案 0 :(得分: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