【问题标题】:Mosquitto broker with SSL encryption for bridge connection带有 SSL 加密的 Mosquitto 代理,用于桥接连接
【发布时间】:2021-03-25 23:13:54
【问题描述】:

让我先解释一下我想要实现的目标,然后再详细介绍我已经尝试过的事情。

因此,我们有一个虚拟机在我们的本地和另一个虚拟机在客户的本地。对这些 VM 的访问仅对某些 IP 地址可用。因此,我们可以说它们对于我们的用例来说足够安全。

来自客户环境的数据通过在这两个环境中设置的 mosquitto 代理流入并流入我们的虚拟机。这是在运行良好的代理桥接的帮助下完成的。但是,由于这个桥接在互联网上,我们希望确保数据是加密的,并且没有人可以通过互联网拦截并以恶意方式使用这些数据。

为了实现这一点,我们正在使用 SSL 代理加密。我尝试的第一种方法是使用PKS加密方法。

这是客户环境中的代理配置。

listener 8883
connection bridgetest
address 147.1.20.1:8883
bridge_identity bridge1
bridge_psk 123456789
topic # both

这是我们环境中的代理配置。

listener 8883 
psk_hint SAAS Deployments
psk_file c:\DemoCompany\psk_file.txt

psk_file.txt 的内容非常简单,与客户环境配置中提供的网桥身份和bridge_psk 相同。

我在这里面临的问题是,即使我将客户环境中的 bridge_identity 或 bridge_psk 更改为 psk_file.txt 中没有的内容,我仍然能够通过网桥连接 2 个代理。 我对此的理解是,如果我将 bridge_psk 更改为一些随机的十六进制代码,连接应该会被拒绝。但这似乎并没有发生。我在这里做错了什么或遗漏了什么?

【问题讨论】:

    标签: ssl mqtt mosquitto broker bridging


    【解决方案1】:

    以下配置文件适用于我从 Ubuntu 上的 mosquitto PPA 提供的 v2.0.9 版本

    客户经纪人:

    listener 1889
    
    connection bridge
    address 127.0.0.1:1890
    bridge_identity bridge1
    bridge_psk 123456789987654321
    topic # both 0
    

    桥梁经纪人

    listener 1890
    psk_hint my test bridge
    psk_file /temp/psk/psk_file.txt
    use_identity_as_username true
    

    use_identity_as_username 是必需的,从 Mosquitto v2 开始,allow_anonymous 默认为 false

    【讨论】:

    • 感谢您的回复。我会试试这个并很快在这里更新。
    • 另外,我的配置是 Windows 10 上的 mosquitto broker 版本 3.1.1
    • 你的版本号打错了,3.1.1是MQTT协议规范版本。 v2.0.9 是 eclipse.org 提供的最新版本
    • 是的。这对我有用。出于某种原因,让它在端口 8883 上工作似乎仍然很麻烦。但是在 1890 端口上,它就像一个魅力。
    • 嗨。我还有一个疑问。如果我将更多用户添加到代理(服务器)上的 psk_file.txt,如何重新加载此文件而无需重新启动我的 mosquitto 代理?我的主要目标是避免破坏所有已经连接的代理网桥
    猜你喜欢
    • 2021-12-16
    • 2015-08-18
    • 2016-03-19
    • 2021-03-12
    • 1970-01-01
    • 2021-09-22
    • 2015-10-16
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多