Windows环境下Node-RED设置NODE_TLS_REJECT_UNAUTHORIZED为0的问题求助
解决Windows下Node-RED调用自签名证书API的证书链错误
直接在HTTP Request节点禁用验证(最简便)
打开HTTP Request节点的编辑界面,找到「TLS」设置区域,取消勾选「Verify server certificate」选项,保存后重新部署即可。这是针对单个请求最直接的处理方式,不需要修改任何配置文件。正确设置环境变量(全局生效)
之前在settings.js里添加process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'没生效,是因为Node-RED加载配置时环境变量的优先级或时机问题。正确的做法是在启动Node-RED前设置环境变量:- 打开命令提示符,执行:
set NODE_TLS_REJECT_UNAUTHORIZED=0 - 再执行
node-red启动Node-RED
如果是用桌面快捷方式启动,右键快捷方式→属性→「快捷方式」标签页,在「目标」栏开头添加cmd /k "set NODE_TLS_REJECT_UNAUTHORIZED=0 && ",示例:
cmd /k "set NODE_TLS_REJECT_UNAUTHORIZED=0 && C:\nodejs\node.exe C:\Users\你的用户名\AppData\Roaming\npm\node_modules\node-red\red.js"- 打开命令提示符,执行:
全局修改Node-RED的HTTP节点配置
打开settings.js,找到httpNodeOptions配置项(如果没有就新增),添加rejectUnauthorized: false,示例:module.exports = { // 其他原有配置... httpNodeOptions: { rejectUnauthorized: false }, // 其他原有配置... };修改后重启Node-RED,所有HTTP Request节点都会默认禁用证书验证。
针对单个请求的函数节点设置
如果只想让特定请求跳过验证,在HTTP Request节点前添加一个函数节点,写入以下代码:msg.rejectUnauthorized = false; return msg;然后编辑HTTP Request节点,在TLS设置里勾选「Use msg.rejectUnauthorized」选项,部署后该请求就会跳过证书验证。
注意:以上方法仅适用于测试场景,生产环境必须使用合法的SSL证书,你提到已与厂商沟通修复自签名证书问题,待修复后请及时恢复证书验证配置。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

