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



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

Simple ActiveMQ over SSL 的客户端代码片段:

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 的客户端代码片段:

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

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

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

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

AmazonMQ的其他好处是,您可以设置警报等等,作为使用Amazon其他服务的一部分,例如将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

最新更新