首页 > 解决方案 > Node.js Fetch 说证书过期

问题描述

我正在使用 Node.js 和 node-fetch 来检索 JSON。这段代码已经工作了一年多,我很长时间没有接触过代码,最近它停止了工作。

这是我的获取代码:

let response = await fetch('https://[mydomain]/api.php', {method: 'POST', headers: headers, body: body});
const data = await response.json();

我没有包含 body 和 header 对象,但它们是在我的 fetch 上方几行定义的。就像我提到的那样,直到几天前这一切都在起作用。

这是我收到的错误:

rejected promise not handled within 1 second: FetchError: request to https://[mydomain]/api.php?reset failed, reason: certificate has expired
/Applications/Visual Studio Code.app/Contents/Resources/app/out/bootstrap-fork.js:5
stack trace: FetchError: request to https://[mydomain]/api.php?reset failed, reason: certificate has expired

该域具有有效的证书。我已经手动检查了它并使用了一些不同的工具来检查它。我正在使用 Open SSL,我更新了 SSL 以防万一。

Node.js 在 VS Code 扩展中运行,但我认为这无关。

知道为什么 Node.js 认为 SSL 已过期吗?或者有没有办法让我忽略这个警告?该扩展主要供我个人使用,API 在我自己的个人服务器上。

标签: node.jsjsonsslopensslfetch

解决方案


尝试添加process.env.NODE_TLS_REJECT_UNAUTHORIZED='0'到您正在初始化请求的文件中。


推荐阅读