MQTT-Mosquitto,設定登入的帳號密碼,以及把密碼加密

前面幾篇做完,我們已經可以連線到 mosquitto broker。但我們總不可能開放讓每個人都可以登入,這樣安全性就太差了。
所以這一篇要在 Mosquitto,設定登入的帳號密碼,以及把密碼加密


首先用 notepad打開一個新的檔案。在檔案中加入我們要用的帳號和密碼。
帳號和密碼的中間用 :隔開,要建多組帳號密碼的話,按下 enter換行輸入即可。參考如下。
terry:12345678
帳號2:25846824
帳號3:78542154


另存新檔。


我把 mosquitto安裝在 d:\mosquitto這個資料夾,所以我也把帳號密碼的檔案存在同一個地方。
檔案名稱我設定為 userlist,這個檔名可以照自己的使用習慣取。
存檔類型選擇 all types


系統管理員的身份,開啟命令提示字元


這個步驟是把我們的密碼加密成上面這樣。
d:,進入d槽。(我本來以為是 cd d:,結果不行,查了一下才知道直接打 d:就可以了。)
cd mosquitto,進入 mosquitto的資料夾。
mosquitto_passwd.exe -U userlist,把密碼加密。最後面的 userlist就是我們剛才存的檔名。


打開 mosquitto資料夾下的 mosquitto.conf這個檔案。


把畫面拉到最下方,加入下面這三行指令。
allow_anonymous false
password_file D:\mosquitto\userlist
listener 1883

mosquitto.conf這個檔案,應該是 mosquitto的設定檔。
程式前面有加 “#“這個符號的,代表不執行。

allow_anonymous false,取消匿名登入。就是一定要有帳號密碼才能登入。
password_file D:\mosquitto\userlist,設定帳號密碼的檔案的路徑。
listener 1883,指定遠端登入時可以使用的 PORT。


回到命令提示字元。
輸入 net stop mosquitto,把服務停止。
輸入 net start mosquitto,啟動服務。

這個動作應該是要把暫存的資料清除。因為我試作的時候,把 mosquitto.conf的檔案,加入 allow_anonymous false取消匿名登入,以及新增帳密碼之後,有用 MQTT-Explorer測試能不能連線成功。結果發現,不輸入帳號密碼還是可以連線成功的。

mosquitto broker服務停止再重新啟動之後,就沒問題了。


上一篇 MQTT Explorer測試有沒有成功連線到 Mosquitto Broker中,我們不用輸入帳號密碼,就可以直接登入。方便是方便,但是安全性就降低了。

在 mosquitto.conf的檔案中加入三行指令之後,不填帳號密碼就無法登入了。


在填連線資料的時候,帳號沒有問題,就填我們設定的帳號。
密碼的部份就比較特別,填加密之前的密碼就可以了。

另外,loacalhost的地方,也改成電腦上的 ip位置。


點擊控制台中的網路和網際網路


點擊乙太網路下的變更介面卡選項


滑鼠直接點擊乙太網路 2下,或是在上面按滑鼠右鍵,選擇狀態


點擊詳細資料


看到 IPV4位置的數值,我這台電腦是 192.168.0.137,這個就是 localhost的位置。每台電腦的設定都不太一樣。

發表迴響