当我尝试使用我正在写的node.js客户端连接到网络服务器时,我收到了上述错误。
但是当我尝试连接服务器时出现错误。
'DEPTH_ZERO_SELF_SIGNED_CERT'
这是发送请求的代码。并且关闭证书检查不是有效选项。我需要保护连接。
var options =
{
hostname: baseUri,
port: 443,
path: 'oauth',
method: 'POST',
requestCert: true,
ca:fs.readFileSync('Comodo_PositiveSSL_bundle.crt'),
rejectUnauthorized: true,
headers: {
//'User-Agent': USER_AGENT,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': data.length
}
};
var req = http.request(options, (res) => {
console.log('statusCode: ', res.statusCode);
console.log('headers: ', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.write(data)
req.end();
req.on('error', (e) => {
console.error(e);
});
如果有人可以告诉我如何设置认证正确,那么不会产生错误?
证书包的图片。如您所见,捆绑包仅包含需要验证服务器自身提供的证书的根证书。
答案 0 :(得分:0)
问题通过以下代码解决。我添加了options.agent = http.Agent(options);
,这解决了问题。
因此,对于尝试向安全服务器进行身份验证并获得上述错误的所有人来说,这可能是您的解决方案。下面我添加了上面编辑的代码。
var options =
{
hostname: baseUri,
port: 443,
path: 'oauth',
method: 'POST',
requestCert: true,
headers: {
//'User-Agent': USER_AGENT,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': data.length
}
};
options.agent = http.Agent(options);
var req = http.request(options, (res) => {
console.log('statusCode: ', res.statusCode);
console.log('headers: ', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.write(data)
req.end();
req.on('error', (e) => {
console.error(e);
});
答案 1 :(得分:0)
npm config set strict-ssl false 适用于npm托管项目