我试图使用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相关问答推荐

使用Moongose处理node.js中重定向的then()块链

如何使用多个OR参数从多个集合聚合

如何在Firebase Cloud Function v2计划函数中设置代码中的时区?

如何在JavaScript中使用Mongoose将项推送到MongoDB中的重嵌套数组

无法使用NPM安装REDUX和DATEPPICER

MongoDB的方面查询的Postgres类似功能

仅在 vue 脚本未退出的情况下使用 docker 时出现错误

为什么它无法发送发布请求并更改为 chrome 中的获取方法?

JavaScript & Node - 将图像文件保存到服务器但无法查看

Pug - 包括带有include关键字的c代码

yarn.lock 和 npm 的 package-lock 有什么区别?

Sequelize 基于关联的查找

添加git信息到create-react-app

如何在不全局安装的情况下在 Node REPL 中要求 node 模块?

如何在 NodeJs 中下载和解压缩内存中的 zip 文件?

Node.js:socket.io 关闭客户端连接

如何使用 Node.js、Express 和 Mongoose 进行身份验证?

为什么模块级返回语句在 Node.js 中起作用?

如何从 findOneAndUpdate 方法中获取更新的文档?

yarn 和 npm 的主要区别是什么?