我想在下面问你的灯: 我正在尝试使用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。 我想念什么吗?有帮助吗?
答案 0 :(得分:1)
您可以向服务器添加额外的根证书,也可以使用环境变量进行Node特殊配置。
env NODE_EXTRA_CA_CERTS=./rootCA.crt node client.js