gpt4 book ai didi

node.js - Nodejs 请求带有 .p12 证书的 Web 服务

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:53 25 4
gpt4 key购买 nike

因此,标题非常简单。我想使用一家公司的 Web 服务,我得到了 .cer 和 .p12 文件。据说,我应该在发出请求时使用 .p12。我已经将 .cer 导入到 Windows 中,我可以轻松地向 postman 提出请求。但是,当我尝试使用 node.js 发出请求时,出现错误。这是代码,我正在使用 request 模块:

var headersOpt = {
"content-type": "application/json",
};

var options = {
url: 'https://some-url/api',
cert: fs.readFileSync(__dirname + '/certs/myCert.p12'),
headers: headersOpt
};

request.get(options, (error, response, body) => {
console.log(error);
console.log(response);
console.log(body);
});

我收到这个错误:

{ Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Object.createSecureContext (_tls_common.js:89:17)
at Object.exports.connect (_tls_wrap.js:1048:48)
at Agent.createConnection (https.js:111:22)
at Agent.createSocket (_http_agent.js:224:26)
at Agent.addRequest (_http_agent.js:192:10)
at new ClientRequest (_http_client.js:256:16)
at Object.request (http.js:39:10)
at Object.request (https.js:239:15)
at Request.start (D:\parser\node_modules\request\request.js:748:32)
at Request.end (D:\parser\node_modules\request\request.js:1512:10)
opensslErrorStack:
[ 'error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib' ] }

最佳答案

agentOptions 中使用 pfx 属性对于 pkcs12 格式:

'use strict';

const request = require('request');
const fs = require('fs');

var options = {
url: 'https://some-url/api',
headers: {
"content-type": "application/json",
},
agentOptions: {
pfx: fs.readFileSync(__dirname + '/certs/myCert.p12'),
passphrase: ''
}
};

request.get(options, (error, response, body) => {
console.log(error);
console.log(response);
console.log(body);
});

如果您的证书是自签名的,请检查 this

关于node.js - Nodejs 请求带有 .p12 证书的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46894187/

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