gpt4 book ai didi

node.js - 如何使用 node.js 请求模块使用我自己的证书进行 SSL 调用?

转载 作者:IT老高 更新时间:2023-10-28 22:10:51 25 4
gpt4 key购买 nike

我正在使用 node.js 和这个请求模块向另一台服务器发出 HTTP 调用。

https://github.com/mikeal/request

效果很好。我现在需要修改此代码以使用我公司的 SSL 证书通过 SSL 进行调用。在请求模块的文档中,它说明了 strictSSL 选项:

"strictSSL - 设置为 true 以要求 SSL 证书有效。注意:要使用您自己的证书颁发机构,您需要指定使用该 ca 作为选项创建的代理。"

这听起来像是我需要做的,但我不明白这句话:“指定一个使用该 ca 作为选项创建的代理。”。

1) 他们所说的“代理人”是什么意思?2)如何“指定代理”3) 如何创建“以 ca 作为选项”的代理?

一个代码示例会很棒,但任何线索都会有所帮助。谢谢。

最佳答案

这在很大程度上阐述了 Peter Lyons' answer ,提供一个例子。

我假设您正在请求一个通过 HTTPS 运行的域,该域使用由您自己的证书颁发机构 (ca) 签署的证书。

使用 request library 时,正如您所做的那样,您无需自己实际实例化代理,您只需为您提出的请求提供一些 agentOptions 即可。下面是一个例子:

request({
method: "POST",
uri: "https://localhost/entries",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
name: "someEntry"
}),
agentOptions: {
ca: fs.readFileSync("certs/ca.cert.pem")
}
}, function(error, httpResponse, body) {
//handle response
});

这里重要的是agentOptions,您提供ca 的证书。现在接受所有使用由 ca 签名的证书的域。假设一个 ca CA1 签署了三个域,D1D2D3。将 ca 设置为 CA1 将允许对所有域 D1D2D3 的请求(但不允许D4 由不同的 ca 签署)。

要点是:"certs/ca.cert.pem" 必须是签名证书颁发机构的证书。

关于node.js - 如何使用 node.js 请求模块使用我自己的证书进行 SSL 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15254976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com