【发布时间】:2021-08-23 13:03:06
【问题描述】:
我的用例是连接 amazon documentDB 以读取更改流,并在将更改流事件部署到 EKS 集群后,从同一服务将更改流事件发送到 amazon MQ。在读取 rds-combined-ca-bundle.pem 中指定的密钥并通过 docker 入口点中的以下条目将其导入本地信任存储后,我能够与 documentDB 连接:
"-Djavax.net.ssl.trustStorePassword=*********","-Djavax.net.ssl.trustStore=/app/certs/truststore.jks",
在与 documentDB 建立连接并读取更改流后(只要集合中有插入、替换或删除),我正在尝试通过 openwire 协议将更改流事件发送到 amazon MQ,当我尝试创建连接时使用 Amazon MQ 文档中指定的 MQ,我遇到异常
无法与 ssl://X-XXXXXXX-XXX-XXX-XXX-XXXXXX-1.mq.us-east-1.amazonaws.com:61617 由于 PKIX javax.net.ssl.sslhandshakeexception
我知道问题出在哪里。当我在没有在 docker 入口点为 documentDB 指定信任库条目的情况下部署我的服务时,它会与 MQ 连接,并且我也可以将模拟事件发送到 MQ,但是当我指定信任库时使用 documentDB,服务也会在信任库中查找 MQ 的证书这实际上不是 MQ 所必需的,因为它由 AWS 管理。我们不需要为 Amazon MQ 指定信任库和密钥库。
我的问题是如何从同一服务连接 Amazon documentDB 和 Amazon MQ?我的要求是从 documentDB 读取更改流事件并将其从同一服务发送到 amazon MQ。我正在使用一个简单的 java 服务,但如果有一些具体的解决方案可用,可以将其转换为 Spring Boot。
我尝试为 MQ 搜索任何 pem 文件,我可以使用类似于 documentDB 的方式使用它,但正如我之前提到的,Amazon MQ 是 Active MQ 的托管服务,因此没有可用的 pem 文件。
有人可以为此提出一些解决方案吗?
【问题讨论】:
标签: java ssl truststore aws-documentdb amazon-mq