提问者:小点点

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


当我们在独立的ActiveMQ上配置SSL时,我们可能需要在客户端代码中提供TrustStore、TrustStore Password、KeyStore和KeyStore密码才能通过SSL协议连接到ActiveMQ,但在Amazon MQ的情况下,虽然它们提供了SSLendpoint,但我们可以简单地连接到它,而无需提供信任和密钥相关值。

SSL上的简单ActiveMQ的客户端代码片段:

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();
        }

AmazonMQSSL的客户端代码片段:

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

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


共1个答案

匿名用户

首先,Amazon MQ工作在ActiveMQ之上,Amazon在activeMQ上编写了一个包装层,因此从功能上来说,它的工作原理几乎相同。Amazon MQ是ActiveMQ的托管消息代理服务。它管理与空间相关的一切,在不同区域配置主动/被动endpoint,以及以下链接中提到的一些好处。

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

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

现在到您的应用程序部分,一件好事是您通过SSL连接配置Activemq的方式,虽然Activemq公开了tcpendpoint,也可以通过简单地提供代理连接URL但在amazonMQ的情况下,它不公开任何TCPendpoint,唯一的连接方式是提供SSLendpoint和相关参数。

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