[英]node JS unable to verify the first certificate
我必须从某人设置的服务器获取令牌,但是当我尝试获取它时,我得到“错误:无法验证第一个证书”。 我浏览了 web 寻找答案,发现了一些关于 globalAgent 的信息,但我不知道如何在我的代码中实现它。 一些帮助将不胜感激。 这是我的代码:
var request = require('request');
var options = {
url: 'NEEDED_URL',
method: 'POST',
headers: {'content-type': 'application/x-www-from-urlencoded'},
data: {
grant_type: 'client_credentials',
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
scope: 'YOUR_SCOPE'
}
};
function callback(error, body) {
if (!error) {
console.log(body);
}
else {
console.log("error: " + error);
}
}
request(options, callback);
NodeJS 使用自己的信任库,与操作系统的信任库分开。 一些服务器使用 NodeJS 不信任的根证书,在这种情况下,您需要设置 NODE_EXTRA_CA_CERTS 环境变量,并添加证书颁发者的公钥。
例如,我的 MacOS 系统的 .zprofile 文件中有这样一行,代表一个证书包:
export NODE_EXTRA_CA_CERTS=/Users/gary/certs/trusted.ca.pem
文件本身看起来像这样(为清楚起见缩短了)。 仅当使用其中一种有效时才需要这样做:
更多信息请参阅我关于开发人员 SSL 信任故障排除的博文。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.