一、Node-RED的設定檔存在.node-red/settings.js中。
A、將網站改成https:
找到如下圖位置,需製作一組 public/private key,以openssl來製作,再將製作好的key放倒適當位置後更改privkey.pem與cert.pem路徑。
製作步驟如同前一篇文章(MQTT 簡介:使用Mosquitto Broker)介紹,採用self-signed方式產server private key與server CERT步驟如下:
- root CA使用已產生的ca.crt,不用再製作,以後對自己的建置的seft-signed系統可使用同一組root CA。
- 產生server private key:(取名叫做nodered.key)
openssl genrsa -out nodered.key 2048 - 產生簽署憑證需求檔案(certificate request):((取名叫做nodered.crs)
openssl req -new -out nodered.csr -key nodered.key - 使用root CA與ca.key簽署nodered.crs產生CERT檔案:
openssl x509 -req -in nodered.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out nodered.crt -days 360 - 假設nodered.key 與 nodered.crt放在/path下,則將https:...改成如下:
https: {
key: require("fs").readFileSync('/path/nodered.key'),
cert: require("fs").readFileSync('/path/nodered.crt')
}, - 執行 sudo systemctl restart nodered。
- Node-RED Dashboard ui網址也需改成https
B、dashboard ui驗證密碼:
- 以下列指令產生hash密碼
node-red admin hash-pw
再將產生的hash密碼複製至下列httpNodeAuth與httpStaticAuth的pass欄位,user可任意指定,但兩個httpNodeAuth與httpStaticAuth最好是一樣。
httpNodeAuth: {user:"admin",pass:"..................."},
httpStaticAuth: {user:"admin",pass:"............. ....."},
二、Node-RED Dashboard ui_template node探討:
在ui_template說明中(The template widget can contain any valid html and Angular/Angular-Material directives.),因此單以ui_template就可以完成很多UI功能。
ui_template與其他node msg input/output以下圖說明:
範例一,原始inject -> </>template->debug:
- inject 送出msg.payload 為timestamp,
- </>template內容
- <div ng-bind-html="msg.payload"></div>,所以把timestamp秀在
- UI網頁上,
- 有勾選Pass through messages from input,所以又把
- timestamp的 msg payload送到debug node。
範例二:message payload含有HTML markup tag:
<script> (function(scope) { scope.$watch('msg', function(msg) { if (msg) { // Do something when msg arrives } }); })(scope); </script>
- 如下影片所示,inject topic為TEST1,TEST2與TEST3,TEST1,TEST2分別更改網頁內容,TEST3 send message給下一個node。
沒有留言:
張貼留言