我的用例是连接amazon documentDB以读取变更流,并在将其部署在EKS集群上后将变更流事件从同一服务发送到amazon MQ。我能够在阅读rds-combined-ca-bundle.pem中指定的密钥后连接documentDB,并通过docker入口点中的以下条目将其导入本地信任存储:
"-Djavax.net.ssl.trustStorePassword=*********","-Djavax.net.ssl.trustStore=/app/certs/truststore.jks",
字符串
在与documentDB建立连接并阅读变更流(无论何时集合中有插入,替换或删除)后,我试图通过openwire协议将变更流事件发送到Amazon MQ,当我试图根据Amazon MQ文档中的指定与MQ建立连接时,我收到异常
由于PKIX javax.net.ssl.sslhandshakeexception,无法建立与ssl://X-XXXXXXX-XXX-XXXXXX-1.mq.us-east-1.amazonaws.com:61617的连接
我知道问题在哪里。当我部署我的服务时,没有在documentDB的docker入口点中指定信任库条目,然后它连接MQ,我也可以将mock事件发送到MQ,但是在documentDB中,当我指定信任库时,服务也会在信任库中查找MQ的证书,这实际上不是MQ所需的,因为它是由AWS管理的。我们不需要指定信任库,使用Amazon MQ。
我的问题是如何从同一个服务连接到Amazon documentDB和Amazon MQ?我的要求是从documentDB读取更改流事件并将其从同一个服务发送到Amazon MQ。我使用的是一个简单的Java服务,但如果有一些具体的解决方案,可以将其转换为Sping Boot 。
我尝试搜索MQ的任何pem文件,我可以像documentDB一样使用它,但正如我前面提到的,Amazon MQ是Active MQ的托管服务,所以没有pem文件可用。
有没有人能提出一些解决方案?
2条答案
按热度按时间qacovj5a1#
最后,我通过将证书显式添加到本地信任存储来解决这个问题,这是与AWS服务建立连接所需的。
jljoyd4f2#
为了能够使用documentDB和Amazon MQ,您需要添加两个证书列表
1.文档数据库-按照此处的说明操作-https://docs.aws.amazon.com/documentdb/latest/developerguide/connect_programmatically.html
1.添加Starfield证书,您可以在这里找到链接-https://www.amazontrust.com/repository/