如何使用CA证书保护Node Red



我需要用CA签名的证书来保护我的Node Red,而不是自签名证书。我使用的是带有AmazonLinux的AmazonEC2。

我自己解决了这个问题。

要使其正常工作,您需要一个红色节点的域名。

我用COMODO获取SSL

获取CERT

  1. ssh进入服务器,然后转到安装node red的主目录,运行这些命令:
  2. mkdir sslcerts

  3. cd sslcerts

  4. openssl genrsa-out/private.key 2048

  5. openssl req-new-sha256-key/private.key-out/{您的域名}.csr

  6. 在COMODO SSL过程中,您需要了解上面创建的.csr文件的内容
  7. 遵循COMODOs SSL请求程序
  8. 一旦颁发证书,您将获得一个Certificates.zip文件。将其解压缩到另一个目录中
  9. 在解压缩的目录中,使用文本编辑器或Linux命令行创建一个ca捆绑文件
  10. 按以下顺序组合文件(我在这里使用Linux命令"cat"):

    $cat COMODARSAAddTrustCA.crt COMODARSADomainValidationSecureServerCA.crtAddTrustExternalCARoot.crt>{yourdomainname}.ca bundle。您需要将刚才创建的ca bundle文件和{yourdomainname}.crt文件复制到服务器上的sslcerts

使证书可由Node Red使用

  1. cd到安装node red的主目录,然后cd到(隐藏).node red目录
  2. nano-settings.js

  3. 在该文件的顶部,取消对以下行的注释:var fs=require("fs")
  4. 查找并取消注释https:{key:…}
  5. 将内容更改为:

    https:{ca:fs.readFileSync('slcerts/{yourdomainname}.ca bundle'),key:fs.readFile同步('slcert/private.key'),cert:fs.read文件同步('slcorts/{yourdomainname}.crt')}

  6. 保存此文件(CTRL-O),然后退出(CTRL-X)
  7. 重新启动红色节点并检查是否有任何启动错误。如果出现错误,则很可能在"https:{…"中拼写错误

若要将SSL证书添加到Node Red,请将https密钥添加到settings。js:

...
},
https: {
key: fs.readFileSync('privkey.pem'),
cert: fs.readFileSync('cert.pem')
},
...

如果您询问如何获得CA签名的证书,您可以选择许多途径。查看Lets Encrypt以获得免费的自动化解决方案。

最新更新