Node.JS Error- process.env.NODE_TLS_REJECT_UNAUTHORIZED。这是什么意思?

时间:2016-02-25 17:10:32

标签: javascript node.js ssl server certificate

我是后端开发的新手。我真的很高兴在节点中编写代码。但是,我似乎无法掌握的事情很少。我一直收到以下错误:

  

错误:DEPTH_ZERO_SELF_SIGNED_CERT

我通过实现以下代码修复了它:

if ('development' == app.get('env')) {
    console.log("Rejecting node tls");
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}

我知道我们正在设置一个环境。但是,这用简单的语言意味着什么呢?我不知道如何向其他人解释。有很多关于信息,如何解决它,但我无法找到任何关于这实际意味着什么的信息。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:19)

节点正在抱怨,因为它给出的TLS(SSL)证书是自签名的(即它没有父节点 - 深度为0)。它希望找到由您的操作系统中安装的另一个证书签名的证书作为受信任的根。

您的“修复”是禁止Node通过允许任何未经授权的证书拒绝自签名证书。

你的修复是不安全的,根本不应该完成,但通常是在开发中完成的(它永远不应该在生产中完成)。

正确的解决方案应该是将自签名证书放入受信任的根存储中,或者获取由现有证书颁发机构(服务器已经信任)签署的正确证书。

另外一点,您的日志记录应为“禁用节点拒绝无效/未授权证书”