使用 CA 证书的 Node-RED 通信

Node-RED communication using CA certificate

我正在尝试使用 CA 证书部署我的 node-RED 环境。 我通过执行以下命令使用 .p12 文件创建了 pem 文件

– openssl pkcs12 -in test.p12 -passin pass:Password -out keyfile.pem -nodes
– openssl pkcs12 -in test.p12 -passin pass:Password -out crtfile.pem -nodes

然后我取消注释节点 redsettings.js 文件中的 https 代码

 https: {
        key: require("fs").readFileSync('keyfile.pem'),
        cert: require("fs").readFileSync('crtfile.pem')
    }

我使用了默认的 http 节点并对 tls 配置进行了以下配置

当我部署节点时出现以下错误

"Error: unable to verify the first certificate"

我在这里错过了什么?

删除您对 settings.js 所做的更改。该部分仅适用于您希望 Node-RED 通过 TLS 为编辑器提供服务的情况。

接下来你导出用户私钥和证书的 openssl 命令应该更像

openssl pkcs12 -in test.p12 -out keyfile.pem -passin pass:Password -nocerts
openssl pkcs12 -in test.p12 -out crtfile.crt -passin pass:Password -nokeys -clcert

您还应该使用

导出包含 CA 链
openssl pkcs12 -in test.p12 -out ca.crt -passin pass:Password -cacerts -nokeys

然后您需要将 ca.crt 文件添加到 HTTP 节点的 TLS 配置中。