2017-07-28 144 views
1

我试图做一些非常基本的工作,它只是不适合我。我有一个注入输入节点简单节点RED流和电子邮件输出节点:Node-RED和nodemailer - 错误:无法验证第一个证书

inject to email nodes

电子邮件节点看起来像这样的属性:

email config window

错误说:

"7/28/2017, 11:43:28 AM node: [email protected] msg : error "Error: unable to verify the first certificate"

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

我是否缺少一些简单的东西?

回答

1

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

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

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

我最好的猜测是,Nodemailer(这是由电子邮件节点的覆盖下使用)被透视时,它发出的EHLO命令,因为它开始到邮件服务器的连接STARTTLS选项中列出,并试图提升连接到一个安全的地方。

虽然我真的不通常建议这一点,你可以关闭的Node.js的证书通过启动节点RED之前导出以下环境变量检查:

NODE_TLS_REJECT_UNAUTHORIZED=0 

这会关闭所有证书检查,所以对于由Node-RED制作的任何TLS/SSL连接,您对中间人的攻击是开放的。

这里真正的解决方案是为邮件服务器获得一个合适的证书,也许来自letsencrypt项目的东西,特别是如果这个邮件服务器以任何方式面向互联网。

0

我没有足够的信誉来写评论,但我加入这一行前面的回复,有人可能需要它,

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

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 
相关问题