我如何信任使用https的自签名证书?

编辑:我原本以为服务器的证书是自签名的。 原来它是由自签名的CA证书签署的。

我正在尝试编写一个Node.js应用程序来访问受保护的HTTPS站点 自签名证书 证书由一个私人的,自签名的CA证书签名。 我也想完全禁用证书检查。

我试过了 自签名证书 服务器的请求选项中的证书,但似乎没有工作。 有人知道怎么做吗?

我期望下面的代码打印statusCode 200 ,而是打印[Error: SELF_SIGNED_CERT_IN_CHAIN]

我已经尝试了类似的代码与请求相同的结果。

 var https = require('https'); var fs = require('fs'); var opts = { hostname: host, port: 443, path: '/', method: 'GET', ca: fs.readFileSync(serverCertificateFile, 'utf-8') }; var req = https.request(opts, function (res) { console.log('statusCode', res.statusCode); }); req.end(); req.on('error', function (err) { console.error(err); }); 

错误[Error: SELF_SIGNED_CERT_IN_CHAIN]是这里发生了什么事情的线索。

这表明HTTPS服务器的证书是由自签名证书签署的,而不是自签名证书本身。 如果服务器证书是自签名的,则错误将是[Error: DEPTH_ZERO_SELF_SIGNED_CERT]

如果您提供的CA证书,而不是服务器的证书,它应该工作。