React 前端导航

NodeJs发起https请求报错:certificate has expired

NodeJs发起https请求报错:certificate has expired

在Node开发项目过程中,我们很有可能需要请求外部地址,以此调用外部功能接口或拉取外部数据。通常我们会使用https来保证通信过程安全,这里当我们用NodeJs发起https请求时却提示:certificate has expired错误。

如何解决

1.简单粗暴的方式,设置环境变量,将下面的代码添加到你的文件顶部:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

注意:这种方式是有问题的,会让NodeJs不拒绝未认证的证书

2.设置请求options的rejectUnauthorizedfalse,忽略证书安全

  http.request(path,{
    rejectUnauthorized:false
  })

3.导出你的证书文件(XXX.key和XXX.pem)发起请请求时指定使用请求目标地址的证书:

let express = require("express");
let https = require("https");
let fs = require("fs");
// 配置
const httpsOption = {
    key : fs.readFileSync("./path/XXX.key"),
    cert: fs.readFileSync("./path/XXX.pem")
}
https.createServer(httpsOption, app).listen(443);

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:farmerlzj@163.com。 本站原创内容未经允许不得转载,或转载时需注明出处: 内容转载自: React前端网:https://qianduan.shop/blogs/detail/5

#node#https

相关推荐

Node定时任务怎么做

linux有crontab定时任务,那么在Node中,定时任务该如何实现?

node事件循环(Event loop)

本文将简述浏览器中的js事件循环机制,帮助我们理解Node中代码是如何运行的。Javascript的一大特点是单线程,也就意味着同一时间他只能做一件事。那Node是如何支撑高并发呢?