Amazon MQ 服务如何在不要求客户端使用 TrustStore 和 KeyStore 的情况下工作?
How Amazon MQ service works without asking client to use TrustStore and KeyStore?
当我们在独立的 ActiveMQ 上配置 SSL 时,我们可能需要在客户端代码中提供 TrustStore、TrustStore 密码、KeyStore 和 KeyStore 密码以通过 SSL 协议连接到 Active MQ,但对于 AmazonMQ,尽管它们有提供了 SSL 端点,但我们可以简单地连接到它而无需提供信任和密钥相关值。
基于 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();
}
通过 SSL 的 Amazon MQ 客户端代码片段:
ActiveMQConnectionFactory connFactory = new ActiveMQConnectionFactory("ssl://xyz.amazonaws.com:61617");
基本上,是什么造成了这种差异?
首先,AmazonMQ 在 ActiveMQ 之上工作,亚马逊在 activeMQ 之上编写了一个包装层,因此在功能方面它的工作方式几乎相同。 AmazonMQ 是 managed Message Broker Service for ActiveMQ
。
它管理与 space 相关的所有内容,在不同区域配置 active/passive 端点以及下面 link 中提到的一些好处。
https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html
amazonMQ 的其他好处是您可以在使用亚马逊其他服务的过程中设置警报等更多功能,例如将 activemq 版本升级到最新版本。
现在来到您的应用程序部分,一件好事是您配置 activemq 的方式是通过 SSL 连接,尽管 activemq 也公开了 tcp 端点,只需提供代理 URL 即可连接,但以防万一对于 amazonMQ,它不会公开任何 TCP 端点,唯一的连接方式是提供 SSL 端点和相关参数。
参考这个 link 关于应用程序如何连接到 amazonMQ:
https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-connecting-application.html
当我们在独立的 ActiveMQ 上配置 SSL 时,我们可能需要在客户端代码中提供 TrustStore、TrustStore 密码、KeyStore 和 KeyStore 密码以通过 SSL 协议连接到 Active MQ,但对于 AmazonMQ,尽管它们有提供了 SSL 端点,但我们可以简单地连接到它而无需提供信任和密钥相关值。
基于 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();
}
通过 SSL 的 Amazon MQ 客户端代码片段:
ActiveMQConnectionFactory connFactory = new ActiveMQConnectionFactory("ssl://xyz.amazonaws.com:61617");
基本上,是什么造成了这种差异?
首先,AmazonMQ 在 ActiveMQ 之上工作,亚马逊在 activeMQ 之上编写了一个包装层,因此在功能方面它的工作方式几乎相同。 AmazonMQ 是 managed Message Broker Service for ActiveMQ
。
它管理与 space 相关的所有内容,在不同区域配置 active/passive 端点以及下面 link 中提到的一些好处。
https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html
amazonMQ 的其他好处是您可以在使用亚马逊其他服务的过程中设置警报等更多功能,例如将 activemq 版本升级到最新版本。
现在来到您的应用程序部分,一件好事是您配置 activemq 的方式是通过 SSL 连接,尽管 activemq 也公开了 tcp 端点,只需提供代理 URL 即可连接,但以防万一对于 amazonMQ,它不会公开任何 TCP 端点,唯一的连接方式是提供 SSL 端点和相关参数。
参考这个 link 关于应用程序如何连接到 amazonMQ: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-connecting-application.html