一尘不染

nodejs-证书链中的错误自签名证书

node.js

我遇到客户端https请求的问题。

片段可以如下所示:

var fs = require('fs');
var https = require('https');

var options = {
    hostname: 'someHostName.com',
    port: 443,
    path: '/path',
    method: 'GET',
    key: fs.readFileSync('key.key'),
    cert: fs.readFileSync('certificate.crt')
}

var requestGet = https.request(options, function(res){
    console.log('resObj', res);
}

我得到的是错误:证书链中的自签名证书。

使用邮递员时,我可以导入客户端证书和密钥,并且可以毫无问题地使用它。有没有可用的解决方案?我还希望对邮递员如何处理证书和工作方式有所了解。


阅读 318

收藏
2020-07-07

共1个答案

一尘不染

根据您的问题,我想您正在使用SSL通讯的自签名证书进行开发。

如果是这种情况,请NODE_TLS_REJECT_UNAUTHORIZED='0'在您正在运行节点的任何地方或直接使用NODE_TLS_REJECT_UNAUTHORIZED='0' node app.js

这指示节点允许不信任的证书(不信任=未由证书颁发机构验证)

如果您不想设置环境变量或需要对多个应用程序执行此操作,则npm具有配置,您可以使用以下命令进行设置 npm config set strict- ssl=false

我不建议在生产中设置此环境变量。使用来自letencrypt.org之类的受信任提供商的免费SSL证书

2020-07-07