我试图使用URL从jira服务器下载一个文件,但我遇到了一个错误.

Error:

Error: unable to verify the first certificate in nodejs

at Error (native)
    at TLSSocket.<anonymous> (_tls_wrap.js:929:36)
   
  at TLSSocket.emit (events.js:104:17)

at TLSSocket._finishInit (_tls_wrap.js:460:8)

My Nodejs code:

var https = require("https");
var fs = require('fs');
var options = {
    host: 'jira.example.com',
    path: '/secure/attachment/206906/update.xlsx'
};

https.get(options, function (http_res) {
    
    var data = "";

  
    http_res.on("data", function (chunk) {
       
        data += chunk;
    });

   
    http_res.on("end", function () {
      
        var file = fs.createWriteStream("file.xlsx");
        data.pipe(file);
      
    });
});

推荐答案

try 添加适当的根证书

这永远是一个比盲目接受未经授权的终点更安全的 Select ,而未经授权的终点只能作为最后手段.

这可以简单地添加

require('https').globalAgent.options.ca = require('ssl-root-cas/latest').create();

你的申请.

关于这个问题,SSL Root CAs npm package(这里使用的)是一个非常有用的包.

Node.js相关问答推荐

如何呈现ejs.renderFile中包含的子模板?

当变量在另一个文件中初始化时,在初始化错误之前无法访问变量

通过PutObjectCommand上传AWS S3 PDF文件,结果为空PDF

验证器功能在mongoose 中不起作用

我的 MERN 网站一直告诉我我的一个函数不是一个函数

是否可以在 NodeJS 代码库中的每个函数之前和之后添加 console.log?

node-gyp: "..\src\binding.cc: 没有这样的文件或目录"

如何从动态Typescript 文件加载模块

Node.js |如何在微服务之间转发标头?

Discord.js V14 interaction.editReply 给出了一个无效的 webhook 令牌错误

Mongoose,如何一次更新多个?

Node.js 大文件上传到 MongoDB 阻塞了事件循环和工作池

类型中缺少属性,该类型是由类实现的接口

使用加密模块的流功能获取文件的哈希(即:没有 hash.update 和 hash.digest)

使用 nvm-windows 时更新 npm

使用 ES6 语法和动态路径导入模块

为什么 Node 控制台不显示功能代码?

将 Heroku App 连接到 Atlas MongoDB 云服务

NodeJS:如何调试检测到 EventEmitter 内存泄漏.添加了 11 个侦听器

Google Electron 表格 api 请求的身份验证范围不足