是否可以将HTTPS通信包装到MQTT中?

是否可以将HTTPS通信包装到MQTT中?,https,proxy,mqtt,vpn,gateway,Https,Proxy,Mqtt,Vpn,Gateway,我又一次为自己缺乏协议知识而挣扎 基本情况: 设备A希望通过HTTPS与设备Z通信 设备A未连接到internet,但仅连接到仅允许MQTT的内部网络。我们称之为“内部总线”B。 连接到B的还有一个MQTT->HTTPS网关G,它可以访问internet 问题: 是否有可能将A和Z之间的完整HTTPS通信打包到MQTT有效负载中,并使用这些MQTT包进行握手和数据传输——以确保设备A和Z在HTTPS通信中不受“干扰” 这并不是指以某种方式解密包:所有内容都应该按原样包装到MQTT中,并通过G向前

我又一次为自己缺乏协议知识而挣扎

基本情况:

设备A希望通过HTTPS与设备Z通信

设备A未连接到internet,但仅连接到仅允许MQTT的内部网络。我们称之为“内部总线”B。 连接到B的还有一个MQTT->HTTPS网关G,它可以访问internet

问题:

是否有可能将A和Z之间的完整HTTPS通信打包到MQTT有效负载中,并使用这些MQTT包进行握手和数据传输——以确保设备A和Z在HTTPS通信中不受“干扰”

这并不是指以某种方式解密包:所有内容都应该按原样包装到MQTT中,并通过G向前路由,因此它类似于OSI第8层

评估:

我的直觉是,它应该以某种方式工作,但我认为要真正实现这一点,我必须在设备A和网关G上编写自己的“网络驱动程序”或“网络挂钩”

关于可行性,你怎么看

感谢并致以最诚挚的问候

虽然这是可能的(如果你足够努力,几乎任何事情都是可能的,人们已经编写了完整的VPN来运行DNS查找),但我会质疑投资回报


您需要两个主题,一个用于通信的每个方向,另一个用于网关上的tun/tap设备来写入/读取数据包。添加NAT层,它将在IP层而不是HTTP代理级别工作。

如果您担心安全问题,并且由于某种原因无法(或不需要)在本地网络中使用MQTT over TLS,则可以在本地网络边缘使用反向代理终止TLS。使用Nginx很容易做到这一点(在下面的文章中详细介绍)


如果出于某种原因,您确实需要使用HTTPS,协议网关应该可以做到这一点,但除非我必须这样做,否则我不会这么做。

我不相信这真的是关于堆栈溢出的话题。@hardillb:您会把它放在哪里?为什么是IP级别而不是传输级别?最后,这可能无关紧要:这似乎真的是个坏主意