【问题标题】:Node-RED and nodemailer - Error: unable to verify the first certificateNode-RED 和 nodemailer - 错误:无法验证第一个证书
【发布时间】:2017-07-28 18:58:55
【问题描述】:

我正在尝试做一些非常基本的工作,但它对我不起作用。我有一个简单的 Node-RED 流程,其中包含一个注入输入节点和一个电子邮件输出节点:

电子邮件节点的属性如下所示:

错误提示:

“2017 年 7 月 28 日上午 11:43:28 节点:fname.lname@company.com 味精:错误 “错误:无法验证第一个证书”

我可以通过 telnet 通过此服务器手动发送未经身份验证的电子邮件。即使我输入帐户凭据,它也会给我相同的“错误:无法验证第一个证书”。

我错过了一些简单的东西吗?

【问题讨论】:

    标签: node.js certificate node-red nodemailer


    【解决方案1】:

    我没有足够的声誉来写评论,但是我在上一个回复中添加了这一行,可能有人需要它,

    要绕过 Node.js 程序中的此错误,请键入:

    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
    

    【讨论】:

      【解决方案2】:

      问题是您要连接的邮件服务器使用 SSL,并且它提供的证书未由您正在使用的 Node.JS 实现中内置的受信任 CA 之一签名。

      我猜这是一个自签名证书。

      错误表示 Node.JS 无法验证提供的链中的第一个证书。

      我最好的猜测是 Nodemailer(它在电子邮件节点的幕后使用)在启动与邮件服务器的连接并尝试将连接升级到安全的连接。

      虽然我通常不建议这样做,但您可以通过在启动 Node-RED 之前导出以下环境变量来关闭 Node.JS 的证书检查:

      NODE_TLS_REJECT_UNAUTHORIZED=0
      

      这会关闭所有证书检查,因此对于从 Node-RED 建立的任何 TLS/SSL 连接,您都会受到中间人攻击。

      这里真正的解决方案是为邮件服务器获取适当的证书,可能来自letsencrypt项目,特别是如果该邮件服务器以任何方式面向互联网。

      【讨论】:

        猜你喜欢
        • 2021-06-15
        • 1970-01-01
        • 2021-12-14
        • 2019-02-20
        • 1970-01-01
        • 2022-09-25
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        相关资源
        最近更新 更多