所以,标题很简单。我想使用一家公司的Web服务,我有. cers和. p12文件。据说,我应该在发出请求时使用. p12。我已经将. cers导入到windows中,我可以很容易地使用postman发出请求。但是当我尝试使用node.js进行请求时,我会出错。这是代码,我使用请求
模块:
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' ] }
Bertrand Martel的其他评论中的请求API已弃用,因此不安全,您也可以使用axios来实现同样的事情:
const fs = require('fs');
const axios = require('axios');
const https = require('https');
const response = await axios.request({
url: *URL_HERE*,
method: 'post',
headers: {
"content-type": "application/json",
},
data: JSON.stringify({
*YOUR_DATA_HERE*
}),
httpsAgent: new https.Agent({
passphrase: *PASSPHRASE_HERE*,
pfx: fs.readFileSync(__dirname + '\\..\\certificates\\certificate.p12'),
})
});
对pkcs12格式使用代理选项中的pfx属性:
'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);
});
如果您的证书是自签名的,请检查此项
问题内容: 我写了非常简单的服务器: 我使用nodejs运行它。 现在我想编写一个简单的客户端,该客户端使用ajax调用将请求发送到服务器并打印响应(Hello World) clinet的javascript: 当我打开客户端html文件时,在控制台中出现以下错误: 我尝试将以下内容添加到ajax调用中: 但后来我明白了 任何人都可以解释我做错了什么,也许如何解决? 非常感谢! 问题答案: 第一
我在heroku服务器上部署了nodejs代码。 我面临H12请求超时问题 这是与pgsql的db连接,它是异步的 这是我如何调用这个数据库 以及立面功能 同样的编码在本地工作,它也在heroku工作。但是突然间我得到了这个问题。有什么帮助吗?
下面是我的用例: 我的服务是:ServiceA。 它依赖于以下服务:ServicesB和ServiceC。 ServiceA向ServiceB发送一个POST请求,其中包含一些身份验证细节(用户名+密码),ServiceB返回一个具有sessionID的json文档。 答复: 上面的sessionId用于从ServiceA到ServiceC的所有api调用。 ServiceA请求serviceC使
下面是我的java代码,它是示例WebService的一部分: 可选(错误域=nsurlerrordomain代码=-1017“不能解析响应”userinfo={nserrorfailingurlstringkey=http://192.168.10.229:8080/jerseydemos/rest/employees,_kcfstreamerrorcodekey=-1,nserrorfaili
我正在尝试从www.mysite上的ASPX页面向web服务发出请求。com使用jQuery。 我的Web服务托管在https://www.mysite2.com. 我已尝试以这种方式执行请求(我在网上找到了部分代码): 我遇到两个问题: 1)IE返回拒绝访问错误(代码0x80070005) 2) Chrome返回“不安全响应”错误 返回的JSON将用于填充自动完成源。 有什么解决这个问题的建议吗
问题内容: 我在 需要身份验证的服务上运行Google Cloud的CORS相关问题。 如果我尝试通过带有Bearer令牌的cli执行curl命令,则 一切正常。不幸的是,如果我尝试通过javascript中的ajax执行相同的调用,则会 收到403。 云运行日志中的错误是这样的: 容器永远不会被击中。 我看到的问题是,当我在Web 浏览器中使用Ajax拨打电话时。Web浏览器正在发出飞行前请求(