node.js - 获取已知的 SSL 证书并将它们传递给 nodejs 请求
问题描述
我正在尝试从我的工作中向这个 API 发出 GET 请求。要访问它,您必须在 VPN 上。我通过浏览器发出请求,它返回正确的 json。然后我尝试通过以下代码通过nodejs发出请求:
var https = require('https');
var options = {
host: 'work.domain.org',
path: '/path/to/api/54023',
method: 'GET',
headers: {
'Host' : 'work.domain.org',
'Content-Type': 'application/json'
}
};
var request = https.request(options, function (res) {
console.log('statusCode:', res.statusCode);
console.log(res);
});
request.on('error', function(err) {
console.log(err)
});
这会出现以下错误:
Error: unable to get local issuer certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1497:34)
at TLSSocket.emit (events.js:315:20)
at TLSSocket._finishInit (_tls_wrap.js:932:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12) {
code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY'
}
我做了一些研究,发现我可以从浏览器中获取证书。通过单击小安全锁符号,我可以查看使用了哪些证书。打开后我进入了证书路径选项卡,发现使用的证书如下(名称已更改):
SOME_ROOT
|
|___ SOMETHING_PKI
|
|___ work.domain.org
我可以进入我的 chrome 设置并将 ROOT 和 PKI 证书导出为 .cer 文件。虽然我找不到路径的底部,但我不知道是否需要(work.domain.org 证书)。如何使用这些证书来验证我的请求?
解决方案
推荐阅读
- java - IntelliJ 中两个库中存在的类的文件源
- c - 为什么c中的函数指针根本不必是指针?
- python - Django REST 框架。在所有方法中不断收到 KeyError
- javascript - 如何使用 axios 从 nodejs 接收文件
- python - 使用 google-api-python-client init() 方法时出现 SSL 错误
- javascript - Vuex:计算对象数组中值的百分比,并更新组件中的值
- kubernetes - 在 AKS 中具有带有多个 vCPU 的 VM 的节点池
- reactjs - 如何在 React 服务工作者中使用 process.env
- javascript - 如何将JSON中的值分配给javascript中的变量
- html - 如何在具有浮动元素的容器内垂直居中元素,该浮动元素有时会影响容器的最终高度?