1. 程式人生 > 實用技巧 >mosquitto基於SSL/TLS安全認證測試MQTT

mosquitto基於SSL/TLS安全認證測試MQTT

一、環境搭建

1.mosquitto介紹

mosquitto是一個實現了MQTT3.1協議的代理伺服器,由MQTT協議創始人之一的Andy Stanford-Clark開發,它為我們提供了非常棒的輕量級資料交換的解決方案。

本文簡單的介紹了關於mosquitto客戶端的使用。mosquitto客戶端在開發、測試過程中能模擬裝置、應用程式,是一款較方便、好用的終端指令碼工具。

2.mosquitto工具安裝

Linux:yum install mosquitto

Window:https://mosquitto.org/download/

檢查一下:

二、使用教程

1.mosquitto_pub命令引數

-d  列印debug資訊
-f  將指定檔案的內容作為傳送訊息的內容
-h  指定要連線的域名  預設為localhost
-i  指定客戶端clientid,預設為附加程序ID的mosquitto_pub_
-I  指定clientId字首
-m  訊息內容
-n  傳送一個空(null)訊息
-p  連線埠號
-q  指定QoS的值(0,1,2)
-t  指定topic
-u  使用者名稱
-P  使用者密碼    
-V  指定MQTT協議版本
--will-payload  指定一個訊息,該訊息當客戶端與broker意外斷開連線時發出。該引數需要與--will-topic一起使用
--will-qos  Will的QoS值。該引數需要與--will-topic一起使用
--will-retain 指定Will訊息被當做一個retain訊息(即訊息被廣播後,該訊息被保留起來)。該引數需要與--will-topic一起使 用
--will-topic  使用者傳送Will訊息的topic

2.mosquitto_sub命令引數

-c  指定客戶端clean_session是否儲存。
-d  列印debug資訊
-h  指定要連線的域名  預設為localhost
-i  指定客戶端clientid
-I  指定clientId字首
-k  keepalive 每隔一段時間,發PING訊息通知broker,仍處於連線狀態。 預設為60秒.
-q  指定希望接收到QoS為什麼的訊息  預設QoS為0
-R  不顯示陳舊的訊息
-t  訂閱topic
-v  列印訊息
--will-payload  指定一個訊息,該訊息當客戶端與broker意外斷開連線時發出。該引數需要與--will-topic一起使用
--will-qos  Will的QoS值。該引數需要與--will-topic一起使用
--will-retain 指定Will訊息被當做一個retain訊息(即訊息被廣播後,該訊息被保留起來)。該引數需要與--will-topic一起使>用
--will-topic  使用者傳送Will訊息的topic

3.SSL/TLS CA證書說明

--cafile:CA證書檔案

--cert:伺服器證書檔案

--key:伺服器私鑰檔案

伺服器未配置SSL/TLS認證的,就不需要--cafile --cert --key引數。

4.訂閱一個主題

mosquitto_sub -h主機-p埠-t主題--cafile --cert --key

5.釋出訊息

mosquitto_pub -h主機 -p埠-t主題--cafile --cert --key -m訊息

檢視訂閱視窗是否收到訊息: