--
原理
- 網站的證書和 MQTT (WebSocket) 的證書必須一致
- Let's Encrypt 證書檔案必須讓 emqx 帳號有讀取權限
--
編輯emqx.conf
- 請自行替換 {web url} 為你的網域
- .ssl. 是 MQTT使用;.wss. 是 WebSocket 使用
--
Let's Encrypt 證書檔案權限
要讓 emqx 可以讀取 Let's Encrypt 產生的證書,最大的問題就是目錄和檔案的讀取權限。
預設的權限大多是只有 root 使用者可以讀,最方便的方式是將 /etc/letsencrypt 的 archive & live 的其他人讀取開放
可以使用一般使用者讀取證書檔案測試,如果沒問題就可以重啟 emqx 服務
--
HTML
在使用上和沒有 SSL 差別不到,注意 mqtt.connect() 的通訊協定是 wss:// 以及 port 的設定即可。
網路上可能會找到有關 MQTT.js 證書相關的設定,不過那些設定並沒有什麼卵用,因為當網站是 https:// 時瀏覽器就會檢查如果是同網站就需要使用相同證書,不同網站就會發生跨網站的相關錯誤,當然現在也是不能和 http 混用
在 F12 console 下如果沒有看到錯誤恭喜已經成功了。
--
5,123 total views, 3 views today