繁体   English   中英

ActiveMQ SSL 激活

[英]ActiveMQ SSL activation

我在 Ubuntu 服务器上有一个带有 ActiveMQ 的 MQTT 代理,它有 Windows 个客户端。 现在我想启用 SSL。我找到了教程,但我有一个问题。

这第 1 步:我在 Mqtt 代理 activemq 上做

步骤 1 使用 keytool 为代理创建证书:

keytool -genkey -alias broker -keyalg RSA -keystore broker.ks

第 2 步导出代理的证书以便与客户端共享:此操作在 MQTT 代理服务器上。 证书将安装在 Windows cleint 上。

keytool -export -alias broker -keystore broker.ks -file broker_cert

第 3 步见下文 为客户端创建证书/密钥库:我需要这一步吗? 在哪里执行此步骤? 在客户端或 Mqtt 代理服务器上? 但有 windows 客户。

keytool -genkey -alias client -keyalg RSA -keystore client.ks

*第 4 步。我需要这一步吗? 在哪里执行此步骤? 在客户端或 MQTT 代理服务器上? 但有 windows 客户端。

为客户端创建信任库,并导入代理的证书。 这将确保客户“信任”经纪人:*

keytool -import -alias broker -keystore client.ts -file broker_cert

我现在必须做什么才能让经纪人和 windows 客户端使用证书?

这些说明涵盖了经纪人端和客户端。

经纪人托管自签名 SSL 证书以分发 SSL 连接,并且客户端需要“信任库”中的密钥以允许来自经纪人的密钥,因为它是自签名的,而不是来自公共 SSL 密钥签名者之一大多数操作系统和开发堆栈已经提供了这些。

请记住——SSL 加密流量,但也维护“谁值得信任”。 只是 b/c 一些服务器分发了一个 SSL 密钥,并不意味着客户端应该简单地加密并开始将数据传递到该服务器。

编辑:一些配置示例

至少:

<broker ..
  .. 
  <sslContext>
    <sslContext keyStore="broker1-keystore.ks"
                keyStorePassword="password"/>
  </sslContext>
  ..
</broker>

高级参考: https://activemq.apache.org/ssl-transport-reference

@Pavlovich 只是一个问题,你是什么意思

客户需要“信任库”中的密钥

我需要将经纪人私钥导入客户端吗? 到目前为止,我只在客户端(windows ca store)上安装了 Brocker 证书 Thx

@Pavlovich 我在客户端安装了证书。 我将 activeqm.xml 更改为:transportConnector name="ssl" uri="ssl://0.0.0.0:61714?transport.enabledProtocols=TLSv1.2"/>

我正在尝试使用 mqtt fx 测试与证书的连接,但它不起作用。 我不断收到 mqtt 异常

错误 --- BrokerConnectService:MqttException

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM