簡體   English   中英

通過 TLS 將 Kafka 生產者/消費者連接到代理

[英]Connecting Kafka producer/consumer to broker via TLS

我正在嘗試為 kafka 代理設置 TLS。 我已按照此處的步驟操作並能夠使用 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>
  5. kafka-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)

懷疑我在客戶端配置中遺漏了一些東西。 任何幫助將不勝感激。

你在嘗試使用客戶端證書嗎? 相反,我會建議,嘗試不使用客戶端證書。 在這種情況下,您只需要以下條目,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM