Jak*_*ake 19 ssl https certificate request node.js
我正在使用node.js和此请求模块对另一台服务器进行HTTP调用.
https://github.com/mikeal/request
它很棒.我现在需要使用我公司的SSL证书修改此代码以通过SSL进行调用.在请求模块的文档中,它说明了strictSSL选项:
"strictSSL - 设置为true以要求SSL证书有效.注意:要使用您自己的证书颁发机构,您需要指定使用该ca作为选项创建的代理."
这听起来像我需要做的,但我不明白这句话:"指定一个用该ca作为选项创建的代理."
1)"代理人"是什么意思?2)如何"指定代理"3)如何创建代理"以该ca作为选项"?
代码示例会很棒,但任何潜在客户都会有所帮助.谢谢.
Nie*_*ard 11
这很大程度上阐述了彼得里昂斯的回答,提供了一个例子.
我假设您要求使用由您自己的证书颁发机构(ca)签名的证书通过HTTPS运行的域.
当您使用请求库时,不需要自己实际实例化代理,您可以简单地为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
});
Run Code Online (Sandbox Code Playgroud)
这里重要的是agentOptions,你提供了ca的证书.现在接受使用由ca签名的证书的所有域.想象一下ca CA1签署了三个域,D1,D2,D3.将ca设置为CA1会导致允许对所有域D1,D2,D3(但不是由不同的ca签名的D4)发出请求.
要点:"certs/ca.cert.pem"必须是签名证书颁发机构的证书.
httprequest在pool我相信的选项中传递给,虽然我自己没有做过,而且文档在这里的细节确实很少。基于浏览代码,我认为您可能只需要options.caoptions.ca ,并在这里使用它在getAgent所以我的猜测可能只是options.ca作为一个字符串传入,该字符串是您公司证书颁发机构的公钥,然后查看请求是否从那里做正确的事情。
| 归档时间: |
|
| 查看次数: |
36354 次 |
| 最近记录: |