这主要阐述了彼得·莱昂斯的回答 https://stackoverflow.com/a/15255239/1080564,提供一个例子。
我假设您正在请求一个通过 HTTPS 运行的域,其证书由以下人员签名your own证书颁发机构 (ca)。
当使用请求库 https://github.com/mikeal/request,正如您所做的那样,不需要自己实际实例化代理,您只需提供一些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 签名的证书的域。想象一下一个caCA1已签署三个域名,D1, D2, D3。将 ca 设置为CA1结果允许对所有域的请求D1, D2, D3(但不是D4由不同的 ca 签署)。
要点是:"certs/ca.cert.pem"
必须是签名证书颁发机构的证书。