Amazon MQ 服务如何在不要求客户端使用 TrustStore 和 KeyStore 的情况下工作?

Posted

技术标签:

【中文标题】Amazon MQ 服务如何在不要求客户端使用 TrustStore 和 KeyStore 的情况下工作?【英文标题】:How Amazon MQ service works without asking client to use TrustStore and KeyStore? 【发布时间】:2019-12-01 13:51:40 【问题描述】:

当我们在独立的 ActiveMQ 上配置 SSL 时,我们可能需要在客户端代码中提供 TrustStore、TrustStore 密码、KeyStore 和 KeyStore 密码才能通过 SSL 协议连接到 Active MQ,但对于 AmazonMQ,尽管它们提供了 SSL端点,但我们可以简单地连接到它,而无需提供信任和密钥相关值。

基于 SSL 的 Simple ActiveMQ 的客户端代码 sn-p:

ActiveMQSslConnectionFactory connFactory = new ActiveMQSslConnectionFactory("ssl://<someHost>:61617");
        String trustStore = "pathTo/client_new.ts";
        String keyStore = "PathTo/client_new.ks";
        try 

            connFactory.setTrustStore(trustStore);
            connFactory.setTrustStorePassword("password");
            connFactory.setKeyStore(keyStore);
            connFactory.setKeyStorePassword("password");

         catch (Exception e) 

            e.printStackTrace();
        

基于 SSL 的 Amazon MQ 的客户端代码 sn-p:

ActiveMQConnectionFactory connFactory = new ActiveMQConnectionFactory("ssl://xyz.amazonaws.com:61617");

基本上,是什么造成了这种差异?

【问题讨论】:

@anshul Gupta,你有什么想法吗? 【参考方案1】:

首先,AmazonMQ 在 ActiveMQ 之上工作,亚马逊在 activeMQ 上编写了一个包装层,因此就功能而言,它的工作方式几乎相同。 AmazonMQ 是managed Message Broker Service for ActiveMQ。 它管理与空间相关的所有内容,在不同区域配置主动/被动端点以及以下链接中提到的一些好处。

https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html

amazonMQ 的其他好处是您可以设置警报等等,作为使用亚马逊其他服务的一部分,例如将 activemq 版本升级到最新版本。

现在来到你的应用程序部分,一件好事是你配置 activemq 的方式是通过 SSL 连接,虽然 activemq 也暴露了 tcp 端点,可以通过简单地提供代理 URL 来连接,但在 amazonMQ 的情况下它不会暴露任何 TCP 端点唯一的连接方式是提供 SSL 端点和相关参数。

有关应用程序如何连接到 amazonMQ,请参阅此链接: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-connecting-application.html

【讨论】:

谢谢@anshul。但我一直在寻找原因,为什么与 Amazon MQ 的连接不会像我们在 ssl 上的独立 MQ 的情况下那样要求客户端代码设置 trustStore 和 KeyStore。 @Nish 连接到 AWS 账户本身使用主要是设置和询问的 KeyStore 信息。因此,当您将其连接到 AWS 时,第一部分已经处理完毕,稍后它使用用户名和密码来验证和连接客户端。

以上是关于Amazon MQ 服务如何在不要求客户端使用 TrustStore 和 KeyStore 的情况下工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Cloud Foundry Rabbit MQ 服务启用涡轮流

如何在不阻止我的网络服务器的情况下上传大文件?使用 python 和 Amazon Beanstalk/EC2

Amazon MQ 和 SQS 有啥区别?

如何在不使用 SDK 的情况下将文件从 Android 上传到 Amazon S3

Amazon MQ 将 AMQP 消息转换为 JMS

如何在不下载文件的情况下搜索amazon S3存储桶中的文件内容