在MQTT服务器mosquitto上使用SSL/TSL

准备工作:

两台电脑,Window系统电脑称为本地电脑,Linux 系统电脑称为服务器电脑。

1、在本地电脑上下载mosquitto的源码,下载地址http://mosquitto.org/files/source/,这里选择1.4.11的最新版本。

2、下载后解压,解压后得到文件夹如右图所示

3、将上述解压的文件件拷贝到服务器电脑上,我使用的是SSH Secure File Transfer这个软件,将该文件夹拷贝到服务器的一个文件夹下,我使用的是/home/ubuntu/这个文件件,拷贝后的文件如下图示:

    

4、mosquitto-1.4.11文件夹下面有一个config.mk文件,是用于配置编译选项的,在这里使用默认的不修改,本文是讲述使用SSL/TSL,所以不修改config.mk文件,如果不使用SSL/TLS,则参考其他文章。

5、通过命令行进入到/home/ubuntu/mosquitto-1.4.11/文件夹下,你的电脑要进入到响应的mosquitto-1.4.11文件夹所在的文件夹下面,然后执行命令【make】,就可以编译了,在编译过程中可能会出现缺少一些文件的情况。

可能会遇到如下情况(引用自http://blog.csdn.net/xukai871105/article/details/39252653)

 

【a】编译找不到openssl/ssl.h
    【解决方法】——安装openssl

sudo apt-get install libssl-dev

【b】编译过程找不到ares.h

sudo apt-get install libc-ares-dev

【c】编译过程找不到uuid/uuid.h

sudo apt-get install uuid-dev

【d】使用过程中找不到libmosquitto.so.1

error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

    【解决方法】——修改libmosquitto.so位置

# 创建链接

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

# 更新动态链接库

sudo ldconfig

【e】make: g++:命令未找到  

    【解决方法】

    安装g++编译器

sudo apt-get install g++

6、编译完毕之后,进行安装,执行命令【sudo make install】。

至此,MQTT的安装已经完成,通过MQTT客户端调试软件MQTT.fx可以通过1883端口进行连接、订阅、发布。

================================================================================

                        以上是安装MQTT broker mosquitto的正常步骤,下面进行配置SSL/TLS

================================================================================

7、在服务器电脑上面创建myCA文件夹,在/home/ubuntu/ 文件夹下使用命令【mkdir myCA】,然后执行命令【sudo chmod 777】

8、进入myCA文件夹,然后执行命令wget https://github.com/owntracks/tools/raw/master/TLS/generate-CA.sh下载生

  成证书用的脚本。

9、下载完之后,在myCA文件夹下面执行命令【bash ./generate-CA.sh】,然后会在myCA文件夹下面生成

   ca.crt/localhost.crt/localhost.key这三个文件是给服务器使用的

10、然后在myCA文件夹下面执行命令【bash ./generate-CA.sh client myclient】,其中myclient是给客户端生成证书

   的名称,可随意更改。执行完上述命令后,会新生成几个文件。

   客户端需要使用的是ca.crt/myclient.crt/myclient.key这三个文件。

11、经过上述步骤之后,生成了服务器使用的ca.crt/localhost.crt/localhost.key文件和客户端使用的

   ca.crt/myclient.crt/myclient.key这几个文件,其中ca.crt是同一个文件。

12、配置mosquitto.conf文件。该文件在mosquitto-1.4.11安装文件夹里面,打开该文件,修改成如下配置:

    port 8883
    protocol mqtt
    cafile /home/myCA/ubuntu/ca.crt
    certfile /home/myCA/ubuntu/localhost.crt
    keyfile /home/myCA/ubuntu/localhost.key
    require_certificate true
    use_identity_as_username true

   使用以上的配置,将其他所有的带#号的行删除,只保留上述内容。

13、修改完配置文件之后,执行命令mosquitto -c /home/ubuntu/mosquitto-1.4.11/mosquitto.conf -v

  根据自己的mosquitto-conf文件所在的位置修改上述命令中的参数,然后服务器就以SSL/TSL的方式开始启动。

  此时客户端使用上述过程产生的客户端证书连接该服务器,即可进行通信。

14、若有疑问,请联系共同讨论

(未完、待续)

 

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,在 Windows 系统上搭建 MQTT 集群需要安装 Mosquitto BrokerMosquitto 是一个开源的 MQTT 服务器,可以在 Windows 上运行。接下来,我们将介绍如何在 Windows 系统上搭建 Mosquitto 集群。 1. 下载 Mosquitto 首先,需要在 Mosquitto 官网 https://mosquitto.org/download/ 下载适合 Windows 系统的安装包,选择适合您系统的版本,下载后解压到指定目录。 2. 修改配置文件 在解压后的目录中找到 mosquitto.conf 配置文件,用文本编辑器打开。找到以下行: ``` #persistence true #persistence_location /var/lib/mosquitto/ ``` 将其取消注释,并将 persistence_location 修改为指定的目录,例如: ``` persistence true persistence_location c:/mosquitto/data/ ``` 在文件末尾添加以下内容: ``` listener 1883 listener 1884 protocol mqtt listener 1885 protocol websockets ``` 其中,listener 指定了 Mosquitto 监听的端口号,这里我们设置了三个端口号,分别为 1883,1884 和 1885,其中 1883 为 MQTT 协议端口,1884 和 1885 分别为 WebSocket 协议的端口。 3. 启动 Mosquitto 在命令行中进入 Mosquitto 的安装目录,执行以下命令启动 Mosquitto: ``` mosquitto -c mosquitto.conf ``` 此时 Mosquitto 就已经启动了。 4. 测试集群 在另一台电脑上,使用 MQTT 客户端连接 Mosquitto,连接地址为 Windows 系统的 IP 地址和监听端口号。例如: ``` mqtt://192.168.0.100:1883 ``` 同样的方式连接到另一个节点的端口号,例如: ``` mqtt://192.168.0.101:1883 ``` 通过这种方式,就可以实现 Mosquitto 的集群。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值