这个问题之前已经有过不同形式的问题,但我所理解的内容似乎太疯狂了,不适合!
我使用nodemailer smtp-transport连接到需要TLS的公司smtp服务器。作为其中的一部分,我可以指定最终在节点TLS对象中结束的tls选项。
我已经为服务器提供了内部的自签名CA,在通过安装到系统并使用openssl进行测试时在节点外进行测试时可以正常工作。
所以在节点I中运行:
var transporter = nodemailer.createTransport(smtpTransport({
host:'host',
port:25,
auth: {
user: 'user',
pass: 'pass'
},
debug: true,
requireTLS: true,
tls: {
ca: [fs.readFile(caPath)]
}
}));
根据节点帮助ca条目是:
ca:PEM格式的可信证书的字符串数组或缓冲区。如果省略了几个众所周知的" root"将使用CA,如VeriSign。这些用于授权连接。
但是我仍然收到节点错误' UNABLE_TO_VERIFY_LEAF_SIGNATURE'。当然,CA应该是值得信任的,尽管我已经签署了自己的CA条目吗?