首页 > 解决方案 > Javascript:API 调用期间出现“自签名证书”错误

问题描述

我正在用 Javascript 自动化一些 API 调用,几天前这个错误开始突然出现。

base.js:383
  1) Test API call
base.js:266
       Fourth test:
     FetchError: request to https://api.qa.xx.xxxx.com:443/mobile/v2/subscribers failed, reason: self signed certificate in certificate chain
      at ClientRequest.<anonymous> (node_modules/node-fetch/lib/index.js:1393:11)
      at TLSSocket.socketErrorListener (_http_client.js:387:9)
      at emitErrorNT (internal/streams/destroy.js:64:8)
      at _combinedTickCallback (internal/process/next_tick.js:138:11)
      at process._tickCallback (internal/process/next_tick.js:180:9)

我花了无数个小时试图找到解决方案,但没有任何效果。我已经重新克隆了整个 repo 和所有内容。有谁知道如何解决这个问题?

在这开始发生之前我做了什么:

  1. 安装 npm 配置
  2. 安装了mongodb客户端

从那以后我就卸载了

标签: javascriptcertificate

解决方案


显然有两个解决方案的相关问题,

通过一个http代理,设置rejectUnauthorized

const https = require("https");
const agent = new https.Agent({
  rejectUnauthorized: false
})
fetch(myUrl, { agent })

在你的 package.json 启动脚本中设置一个 env var

NODE_TLS_REJECT_UNAUTHORIZED="0" npm start

或使用process.envvar

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

推荐阅读