使用Eclipse Paho JavaScript客户端的SSL / TLS

时间:2015-06-01 08:34:22

标签: ssl nginx websocket mosquitto

我有一个基于JavaScript的WebApp,其中包含Eclipse Paho客户端。

WebApp在NGINX网络服务器上存储和执行。 在安装Web服务器的同一服务器上,MQTT代理mosquitto正在运行。我已将端口8884定义为安全连接的侦听器端口。

使用--cafile和-p 8884运行mosquitto_sub(简单C客户端)工作正常!

现在我想通过在我的MQTT客户端实现中传递mqttOptions = {useSSL:true}来使用SSL来保护WebApp。

我可以看到该应用正在尝试与wss:// ip而不是ws:// ip建立连接。但服务器响应连接拒绝,这是完全清楚的,因为我没有在网络服务器上配置任何东西,因为我不知道如何管理这个。 wss连接是否会“映射”到https或其他什么东西?我是否需要NGINX中的websocket代理?提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

对于带有mosquitto的websockets,你不能对原始MQTT和MQTT使用相同的端口,你需要创建2个独立的监听器。

您可以使用mosquitto_sub进行连接,这意味着您只使用原始MQTT设置了一个侦听器。

e.g。

listener 8883

listener 8884
protocol websockets

这将在8883上创建本机MQTT侦听器,在端口8884上创建基于websockets的MQTT

答案 1 :(得分:1)

我这样做了。这是mosquitto conf条目:

listener 8884 127.0.0.1
protocol websockets
cafile /path/to/ca.crt
certfile /path/to/certfile.crt
keyfile /path/to/keyfile.key
require_certificate false

因此应用程序正在尝试连接到myip:8884