错误:自签名证书,带有请求的node.JS https客户端证书认证

时间:2020-06-04 08:42:09

标签: node.js

我想在下面问你的灯: 我正在尝试使用nodeJS在我的服务器(在这种情况下充当客户端)与外部服务器之间建立https连接。 我们要使用客户端证书验证,并且外部服务器提供了自签名的private.key和client.crt证书。 我的代码如下:

router.get('/mywebhook', function (req, res) {
console.log('/mywebhook');
var request = require("request");
//var options;
var options = { method: 'GET',
    url: 'https://externalserverURL'
    ,cert: fs.readFileSync('certs/client_crt.pem')
    ,key: fs.readFileSync('certs/key.pem')
}


request(options, function (error, response, body) {
    if (error){
        //throw new Error(error);
        console.log(error);
        return res.end(error); 
    }
    console.log('all ok')
    return res.end(body);
});

});

不过,出现以下错误: 错误:自签名证书 代码:“ DEPTH_ZERO_SELF_SIGNED_CERT”

我要避免设置sst-strict = false。 我想念什么吗?有帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以向服务器添加额外的根证书,也可以使用环境变量进行Node特殊配置。

  • 要让Node识别您的自签名证书,您可以使用NODE_EXTRA_CA_CERTS环境变量,方法是提供文件Extra-ca-certs的路径。pem文件将使Node添加它们:
env NODE_EXTRA_CA_CERTS=./rootCA.crt node client.js