我们正在开发一个基于Mosquitto代理的POC,其中使用了3个不同的MQTT客户端,即C,Python和phpMQTT,我们需要在这些客户端之间传递消息。但是phpMQTT客户端没有实现SSL / TLS,这限制了我们为整个解决方案启用SSL。
如果我的C& C& Python客户端在安全端口上连接到Broker,即8883(启用了TLS选项)和我的phpMQTT客户端在1883端口(没有TLS选项)?
答案 0 :(得分:1)
Mosquitto允许您根据需要收听尽可能多的端口。您可以决定是否在每个侦听器上支持TLS。例如,您可以将端口1883用于未加密的连接,端口8883用于基于常规证书的TLS,端口8884用于基于证书的TLS,要求客户端传递有效证书,端口8885用于基于TLS-PSK的加密。
除了正在使用的加密之外,连接到代理的客户端将与正常情况完全相同。
答案 1 :(得分:0)
我不确定mosquitto能否在两个不同的端口上启动。您可以尝试使用HiveMQ来完成此操作,HiveMQ支持所谓的“混合模式”(http://www.hivemq.com/docs/hivemq/1.4.1/#hybrid-mode-chapter)此混合模式允许您在任何端口(如1883)上使用TLS而在其他端口(如8883)上使用TLS进行连接
我不确定你为什么使用phpMQTT,但是websockets可以作为你的选择吗? HiveMQ支持开箱即用的安全网页框,因此您可以尝试一下。有关如何执行此操作的博客文章,请访问:http://www.hivemq.com/build-javascript-mqtt-web-application/
免责声明:我是HiveMQ的开发者之一