gpt4 book ai didi

node.js - Node 'DEPTH_ZERO_SELF_SIGNED_CERT'

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:09 24 4
gpt4 key购买 nike

当我尝试使用我正在编写的 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);
});

如果有人能告诉我如何设置正确的证书才不会产生错误?


证书包的图片。如您所见, bundle 仅包含验证服务器自身提供的证书所需的根证书。

Cert bundle

最佳答案

此解决方案与发布的问题无关,但错误代码为 DEPTH_ZERO_SELF_SIGNED_CERT。

下面的代码抛出相同的错误代码

const https = require('https');

https.get('https://10.20.30.40:1234/v1/objects/storages', (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);

res.on('data', (d) => {
process.stdout.write(d);
});

}).on('error', (e) => {
console.error(e);
});

要解决这个问题,我们必须在 https.get() 中应用 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"。请查看以下行中的问题修复代码。

const https = require('https');

https.get('https://10.20.30.40:1234/v1/objects/storages',
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0", (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);

res.on('data', (d) => {
process.stdout.write(d);
});

}).on('error', (e) => {
console.error(e);
});

关于node.js - Node 'DEPTH_ZERO_SELF_SIGNED_CERT',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com