【问题标题】:ActiveMQ SSL activationActiveMQ SSL 激活
【发布时间】:2023-02-01 18:42:21
【问题描述】:

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

这第 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 cleint。

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

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

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

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

我现在必须做什么才能让代理和 Windows 客户端使用证书?

【问题讨论】:

  • “MQTT broker”和“ActiveMQ”是两个不同的东西还是同一个东西?
  • 此外,您是否真的想使用自签名证书,或者您是否打算让您的证书签署但受信任的权威机构?
  • 你需要缩小你的问题。在 Stack Overflow 上,一个问题应该只关注一个单身的问题。当您提出多个问题时,很难确定正确答案。例如,如果答案只解决了问题的一部分怎么办?假设它是准确的,它是“正确的”吗?如果有 2 个答案,并且每个答案都准确地解决了您问题的不同部分,该怎么办?哪一个是“正确的”?这种模棱两可不利于社区参与,并且会贬低内容的价值。请提出专注于单个问题的问题。谢谢!
  • 您好 Bertram,感谢您的回答。 “MQTT broker”和“ActiveMQ”是两个不同的东西还是同一个东西?这是同一件事。是的,我想使用自签名证书。感谢和尊重。

标签: ssl activemq


【解决方案1】:

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

代理托管自签名 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 这意味着:首先使用 keytool 为代理创建证书:并导出证书 (broker_cert) 并将其安装在 Windows cleint 上。是对的吗 ?另一个问题,我仍然需要在 activemq.xml 配置中进行一些更改,以便代理使用证书并在 SSL 上侦听。 ?
  • @sondavid2020 是的,您至少要添加一个 sslContext。有用于其他场景的高级配置,但一般示例——客户端连接并信任代理——已在上面发布
【解决方案2】:

@帕夫洛维奇 只是一个问题,你是什么意思

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

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

【讨论】:

    【解决方案3】:

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

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

    错误 --- BrokerConnectService:MqttException

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 2017-03-06
      • 2016-12-15
      相关资源
      最近更新 更多