如何在 ActiveMQ 服务器上设置 SSL?
我按照本教程为ActiveMQ创建证书。
keytool -genkey -alias broker -keyalg RSA -keystore amq-server.ks
keytool -export -alias broker -keystore broker.ks -file amq- server_cert
keytool -genkey -alias client -keyalg RSA -keystore amq-server.ks
keytool -import -alias broker -keystore client.ts -file amq-server_cert
我有带有 ActiveMQ 的 Ubuntu 服务器和带有 MQTT.fx 的 Windows 机器。
我在 ActiveMQ 配置中添加了该设置:
<transportConnector name="openwire" uri="tcp://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ssl" uri="ssl://0.0.0.0:61714?transport.enabledProtocols=TLSv1.2"/`
我现在在机器上安装了 MQTT.fx,并且我正在尝试通过 SSL 进行连接。我创建了 2 个配置 - 一个带有证书,另一个没有证书。无需证书即可连接。与证书的连接不起作用。我选择了服务器证书,或者客户端证书不起作用。
如果我将此设置添加到 ActiveMQ 配置中,则不再起作用
<sslContext>
<sslContext keyStore="file:${activemq.base}/conf/amq-server.ks"
keyStorePassword="password"
trustStore="file:${activemq.base}/conf/amq-server.ts"
trustStorePassword="password"/>
</sslContext>
我已经尝试了所有组合都不起作用。
有人可以帮助我吗?我如何在 ActiveMQ 上设置 SSL 并与证书进行通信。也许是一种 SSL 方式?
在步骤 #3 中,您应该使用此命令:
keytool -genkey -alias client -keyalg RSA -keystore client.ts
请注意,此命令使用
client.ts
而不是 amq-server.ks
。这将是您在 MQTT.fx 上使用的信任库。
此外,如果您使用带或不带 SSL 的 MQTT,您应该添加适当的
transportConnector
元素并使用 MQTT 应用程序中的元素,例如:
<transportConnector name="mqtt+nio" uri="mqtt+nio://0.0.0.0:1883"/>
<transportConnector name="mqtt+nio" uri="mqtt+nio+ssl://0.0.0.0:8883"/>
您的
sslContext
应配置如下:
<sslContext>
<sslContext keyStore="file:${activemq.conf}/amq-server.ks" keyStorePassword="password"/>
</sslContext>