Ken*_*ler 3 java amazon-web-services spring-cloud-stream spring-kafka aws-msk
有没有关于如何在 Spring Cloud Stream 应用程序中使用 AWS MSK 详细信息的信息?
我相信我们需要生成一个密钥库和信任库,然后将它们合并到我们的应用程序中?我浏览了 AWS MSK 的“客户端身份验证”页面,发现这非常令人困惑。
任何人都可以帮我解决这个问题吗?我只是想部署这个使用 AWS MSK(3 个代理)的应用程序。
谢谢你。
小智 6
简短回答:您的 kafka 客户端在配置中需要这个:
# security settings
security.protocol=SSL
ssl.truststore.location=/tmp/kafka.client.truststore.jks
ssl.truststore.password=
ssl.endpoint.identification.algorithm=
Run Code Online (Sandbox Code Playgroud)
也就是说,如果您使用教程中相同的 JVM 信任库,并且没有密码。在ssl.endpoint.identification.algorithm关闭主机名验证圈。
长答案:看完教程后,我想知道同样的事情,想知道为什么 JVM 信任库在连接到 MSK 时会神奇地工作。解释是这样的:
如果你看一看这个信任库导入了哪些证书
keytool --list -v -keystore /tmp/kafka.client.truststore.jks | grep Owner
Run Code Online (Sandbox Code Playgroud)
其中之一是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}
Run Code Online (Sandbox Code Playgroud)
谢谢,延安
| 归档时间: |
|
| 查看次数: |
1631 次 |
| 最近记录: |