NODE-RED增加账户登录及SSL证书

NODE-RED默认不需要认证登陆,当内网服务开放了外网端口后,有一定的安全风险,此操作可以规避一部分。首先看看效果:

访问NODE-RED页面的时候会要求登录,并且通过HTTPS访问。

实现步骤:

1、用户名密码登陆
修改NODE-RED容器配置文件夹中的settings.js:

adminAuth: {
   type: "credentials",
   users: {
   username: "三木",
   password: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
   permissions: "*"
   }]
   }

找到上面行,取消前面的注释,修改username和password的内容,
其中password经过了编码,具体方法为:
进入容器命令行环境,其中的Node-Red为容器名字,根据自己的情况修改

docker exec -it Node-Red /bin/bash

执行命令

node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" password_here

password_here即输入你的密码,注意前面有个空格,然后回车
会自动显示编码后的密码,复制内容到上面的password里,保存,重启NODE-RED容器。

2、增加SSL证书
修改NODE-RED容器配置文件夹中的settings.js:

var fs = require("fs");
  https: {
   key: fs.readFileSync('/data/XXX.key'),
   cert: fs.readFileSync('/data/XXX.pem')
   },
requireHttps: true,

总共修改3处地方,将SSL证书的key和pem文件复制到settings.js所在文件夹,重启容器

image $ 这个符号要包含。。被坑了