2017-04-10 182 views
1

我在一台正在向树莓派(客户端)发布消息的Windows PC上设置一个代理。在同一台Windows机器上,我正在运行一个node.js服务器,它也是一个可以将消息发布到在同一台Windows计算机上运行的代理的蚊子客户端。确保蚊子连接安全 - MQTT

我抬头(通过简单的谷歌搜索和阅读官方文档)我如何保护moquitto连接。但我还是遇到了一些问题:

  • 我怎么能只允许一个mosquitto经纪人在同一台机器上运行的客户端 沟通? (例如,简单地通过websockets发布传感器 值到本地前端 - 我已经在做)
  • 本地(在同一台计算机上)客户端需要用户名和密码(如果指定的话)是否需要 ?
  • 当客户端连接到代理时,为什么此配置不需要用户名和密码 ?

mosquitto.conf

allow_anonymous false 
password_file C:\Program Files (x86)\mosquitto 

口令文件在指定位置和有效。

mosquitto -c mosquitto.conf不会引发任何错误。

  • 我可以包括加密 mosquitto-tls时仍然使用的用户名和密码?

回答

3

监听者可以绑定到特定的接口,例如, 127.0.0.1,它只允许来自本地主机的连接。

listener 1885 127.0.0.1 

如果要限制整个经纪人只监听本地连接使用bind_adddress配置选项可以更改默认的监听器只在127.0.0.1而不是0.0.0.0听(此地址表示所有的网络接口在机器上)

如果配置了基于密码的身份验证,它将应用于所有侦听器,因此如果您设置了仅本地主机侦听器,则仍然需要提供用户名和密码。

可以,除非你使用客户端证书使用基于TLS和用户名和密码验证,使刚刚完成了use_identity_as_usernamerequire_certificate

+0

:本'mosquitto'经纪人只读取Windows上的'mosquitto.conf'如果运行它作为服务 –

+0

错误,它会一直读取它,如果通过命令行通过'-c'选项 – hardillb

+0

from'readme-windows.txt' 作为服务运行时,配置在mosquitto.conf在 安装目录中使用,请根据需要进行修改。 –