簡體   English   中英

AWS Kafka (MSK) - 如何生成密鑰庫和信任庫並在我的 Spring Cloud Stream 應用程序中使用它們?

[英]AWS Kafka (MSK) - How to generate Keystore and truststore and use the same in my Spring Cloud Stream application?

有沒有關於如何在 Spring Cloud Stream 應用程序中使用 AWS MSK 詳細信息的信息?

我相信我們需要生成一個密鑰庫和信任庫,然后將它們合並到我們的應用程序中? 我瀏覽了 AWS MSK 的“客戶端身份驗證”頁面,發現這非常令人困惑。

任何人都可以幫我解決這個問題嗎? 我只是想部署這個使用 AWS MSK(3 個代理)的應用程序。

謝謝你。

簡短回答:您的 kafka 客戶端在配置中需要這個:

# security settings
security.protocol=SSL
ssl.truststore.location=/tmp/kafka.client.truststore.jks
ssl.truststore.password=
ssl.endpoint.identification.algorithm=

也就是說,如果您使用教程中相同的 JVM 信任庫,並且沒有密碼。 ssl.endpoint.identification.algorithm關閉主機名驗證。

長答案:看完教程后,我想知道同樣的事情,想知道為什么 JVM 信任庫在連接到 MSK 時會神奇地工作。 解釋是這樣的:

如果你看一看這個信任庫導入了哪些證書

keytool --list -v -keystore /tmp/kafka.client.truststore.jks | grep Owner

其中之一是Starfield Services Root Certificate Authority ,當亞馬遜購買該公司時,CA 成為亞馬遜的其中之一(在此處查看所有這些https://www.amazontrust.com/repository/ )。 由於 JVM 信任庫信任這個 CA,它也信任任何由 CA 簽名的東西,MSK 集群就是其中之一。

如果您希望生成自己的信任庫,請下載亞馬遜的證書之一並導入

keytool -keystore kafka.client.truststore.jks -alias CARoot -importcert -file {downloaded-cert} -storepass {your-password}

謝謝,延安

我正在尋找同樣的東西,所以作為答案發布可能會幫助其他人。 這是可以提供幫助的官方文檔

在 Ubuntu 機器上為我工作,你也不需要導入/創建只使用現有的 cacerts

cp /home/ubuntu/.sdkman/candidates/java/8.0.232.hs-adpt/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks

使用以下內容創建一個名為client.properties的文本文件。

security.protocol=SSL
ssl.truststore.location=/tmp/kafka.client.truststore.jks

我們很樂意消費消息

./kafka-console-consumer.sh --bootstrap-server  mykafka.kafka.us-west-2.amazonaws.com:9094  --consumer.config /home/ubuntu/client.properties --topic demo --from-beginning

暫無
暫無

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

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