Node-RED和nodemailer – 错误:无法validation第一个证书

我正在努力做一些非常基本的工作,而这只是不适合我。 我有一个简单的节点REDstream与一个注入input节点和一个电子邮件输出节点:

注入到电子邮件节点

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

电邮配置窗口

错误说:

“7/28/2017,11:43:28节点:fname.lname@company.com味精:错误”错误:无法validation第一个证书“

我可以通过telnet手动发送未经身份validation的电子邮件。 即使我input帐户的信用,它给了我相同的“错误:无法validation第一个证书”。

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

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

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

该错误说Node.JS不能validation所提供的链中的第一个证书。

我最好的猜测是Nodemailer(在电子邮件节点下使用)在发送EHLO命令时看到列出的STARTTLS选项,因为它启动到邮件服务器的连接,并尝试将连接升级为安全。

虽然我通常不推荐这样做,但是在启动Node-RED之前,可以通过导出以下环境variables来closuresNode.JS的证书检查:

 NODE_TLS_REJECT_UNAUTHORIZED=0 

这将closures所有证书检查,因此您可以对由Node-RED创build的任何TLS / SSL连接进行中间人攻击。

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

我没有足够的声望写评论,但是我在前面的回复中增加了这一行,有人可能需要它,

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

 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 
Interesting Posts