kev*_*vmo 8 ssl node.js tls1.2 fetch-api next.js
情况是这样的:我有证书、密钥、公钥和私钥。我正在构建一个与另一个系统集成的应用程序。我的系统是在 Azure 上运行的 Next.js 应用程序。它向在其他地方运行的外部服务器发出 API 请求。 我知道我的证书/密钥很好,因为当我使用 Insomnia API 客户端时请求有效(200 响应和数据返回)。
然而,尝试在 Node 中执行此操作时,我不断收到 400 错误。我尝试过使用核心fetch和https功能并使用该node-fetch包来做到这一点。我还查看了该request软件包(因为互联网上有这样的示例),但该软件包一年多前已被弃用,因此我认为不应使用它。
这是我尝试使用的一些代码的示例。我将证书/密钥存储/tmp/certs在我的本地系统上并且它们正在加载(我一直在大量记录)。我使用过各种不同的方法requestOptions,但似乎没有任何效果。
import fs from 'fs'
import fetch from 'node-fetch'
const requestOptions = {
method: 'GET',
port: 443,
cert: fs.readFileSync("/tmp/certs/ct.crt", 'utf-8'),
key: fs.readFileSync("/tmp/certs/ct.key", 'utf-8')
};
const res = await fetch("https://url.com?unique_ID=1234&key=abcd", requestOptions);
Run Code Online (Sandbox Code Playgroud)
检查res总是会出现 400。此时我已经尝试了多种不同的方法。这看起来应该是一个微不足道的常见用例......我做错了什么以及我应该如何构建这个请求?
帮助我,Stack Overflow,你是我唯一的希望!