前面幾篇做完,我們已經可以連線到 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的位置。每台電腦的設定都不太一樣。