【发布时间】:2018-10-13 14:56:06
【问题描述】:
我配置了启用 SSL 的 kafka (1.0) 并将 listeners 属性添加为 listeners=PLAINTEXT://:9092,SSL://:9093
并将听众宣传为advertisted.listeners=PLAINTEXT://PUBLICIP:9092,SSL://PUBLICIP:9093
我能够使用 9092 端口生成消息,但无法在启用 SSL 的 9093 上执行此操作。以下是我遇到的错误
[2018-05-03 10:51:41,990] ERROR Error when sending message to topic test with key: null, value: 16 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: 60000 毫秒后更新元数据失败。
这是我正在使用的生产者命令
bin/kafka-console-producer.sh --broker-list PUBLICIP1:9093,PUBLICIP2:9093,PUBLICIP3:9093 --topic test --property security.protocol=SSL --producer.config ~/client.properties
这是 client.properties 中的条目
security.protocol=SSL
ssl.truststore.location=/home/ubuntu/kafka.client.truststore.jks
ssl.truststore.password=trustpassword
【问题讨论】:
-
您需要启用调试日志记录甚至 ssl 调试日志记录才能在此处继续进行。问题可能出在服务器端、客户端或您的证书中。我建议您按照docs.confluent.io/current/tutorials/security_tutorial.html 之类的教程进行操作,这样您就可以知道您是否错过了任何步骤,因为您似乎正在生成自己的证书。
-
如果您认为所有密钥库和证书都有效并且在代理中正确设置,然后尝试在属性文件中添加客户端密钥库和信任库。还要检查 broker 上的 ssl.cipher.suites 属性,并在您的生产者 ssl 属性中具有相同的属性。
标签: security ssl apache-kafka