TLS/SSL Mulesoft 与 ActiveMQ 的集成
时间:2022-01-04 作者:电脑狂魔
介绍
本文解释了为具有自签名证书的 ActiveMQ 代理启用 TLS/SSL 的详细过程。主要议题如下:
使用 OpenSSL 生成 PKCS12 格式的自签名证书
消息代理的配置更改为 E
Mulesoft 发布者和消费者连接器配置以包含 PKCS12 格式的信任库
本文的主要目的是帮助 Mulesoft 开发人员了解 ActiveMQ 与启用 TLS/SSL 的代理的集成。
生成自签名证书
OpenSSL 和 keytools 是最流行的 TLS/SSL 证书生成工具。OpenSSL 是一个非常强大和通用的工具,用于广泛的用途,例如网络和证书操作。在这个过程中,我使用 OpenSSL 来生成 PKCS12 证书。
ActiveMQ 代理的密钥库
为了为 ActiveMQ Brokers 启用 TLS/SSL,我们需要一个带有私钥和发布密钥的证书。这可以是 JKD、PKCS12 等格式。
第一步: 生成密钥对
openssl req -x509 -newkey rsa:2048 -keyout 域名 -out 域名 -days 3650
上面的命令需要输入。其中重要的一个是 FQDN(完全限定域名)。对于自签名,最好使用 *.<Company-Name>.com。这将允许将证书应用于多个代理。
第二步:生成 PKCS12 格式的密钥库
openssl pkcs12 -export -in 域名 -inkey 域名 -out hytemq-域名 -name "hytemq-dev"
上述命令将生成文件 hytemq-域名。这是 ActiveMQ 代理所必需的。
要查看密钥库的内容,请使用以下命令:
openssl pkcs12 -info -in hytemq-域名
客户端信任库
信任库用于客户端连接代理。
openssl pkcs12 -export -nokeys -in 域名 -out hytemq-域名
要查看信任库的内容,请使用以下命令:
openssl pkcs12 -info -in hytemq-域名 -passin pass:changeme
使用 TLS/SSL 配置 ActiveMQ
要启用 TLS/SSL,我们需要执行以下操作:
复制hytemq-域名到${AMQ_HOME}/etc/ssl
域名通过添加以下部分进行更新:
<sslContext> <sslContext keyStore="etc/ssl/hytemq-域名" keyStoreKeyPassword="changeme" keyStorePassword="changeme"/> </sslContext>
注意:我们需要域名像下面这样添加 SSL 传输:
<transportConnectors> <transportConnector name="jms-management" uri="nio://0.0.0.0:61620?域名rameSize=10485760&allowLinkStealing=false&maximumConnections=256"/> <transportConnector name="jms-consumers-ssl" uri="nio+ssl://0.0.0.0:61618?域名rameSize=10485760&allowLinkStealing=false&maximumConnections=256"/> <transportConnector name="jms-producers-ssl" uri="nio+ssl://0.0.0.0:61621?域名rameSize=10485760&allowLinkStealing=false&maximumConnections=256"/> </transportConnectors> .
使用 TLS/SSL 配置 Mulesoft ActiveMQ 连接器
使用 Mulesoft ActiveMQ 连接器在启用 TLS/SSL 的情况下发布或使用消息,我们需要将连接器配置如下:
" data-lang="" style="box-sizing: border-box;">
<jms:config name="JMS_Config_SSL" doc:name="JMS Config" doc:id="301510cd-9750-4126-b452-b833e5137566" > <jms:active-mq-connection username="admin" password="admin" > <tls:context > <tls:trust-store path="ssl/hytemq-域名" password="changeme" type="pkcs12" insecure="true"/> </tls:context> <jms:factory-configuration brokerUrl="failover:(ssl://域名:61621,ssl://域名:61621,ssl://域名:61621)" /> </jms:active-mq-connection> </jms:config>
创建自签名证书的命令:
openssl req -x509 -newkey rsa:2048 -keyout 域名 -out 域名 -days 3650 openssl pkcs12 -export -in 域名 -inkey 域名 -out hytemq-域名 -name "hytemq-dev" openssl pkcs12 -info -in hytemq-域名 openssl pkcs12 -export -nokeys -in 域名 -out hytemq-域名 openssl pkcs12 -nokeys -info -in hytemq-域名 -passin pass:changeme openssl pkcs12 -info -in hytemq-域名 -passin pass:changeme