Node.js 如何在Axios中使用客户端证书获取HTTPS
如何使用下面的客户端证书使用http执行get请求Node.js 如何在Axios中使用客户端证书获取HTTPS,node.js,axios,chai,client-certificates,chai-http,Node.js,Axios,Chai,Client Certificates,Chai Http,如何使用下面的客户端证书使用http执行get请求 curl -k --key [key_path] --cert [cert-path]:secret 'https://127.0.0.1/url' 以下代码返回错误: 错误:错误:0906A068:PEM例程:PEM_do_头:错误的密码读取 我想这是因为缺少密码短语的论证 let chai = require('chai'); let chaiHttp = require('chai-http'); let should = chai.
curl -k --key [key_path] --cert [cert-path]:secret 'https://127.0.0.1/url'
以下代码返回错误:
错误:错误:0906A068:PEM例程:PEM_do_头:错误的密码读取
我想这是因为缺少密码短语的论证
let chai = require('chai');
let chaiHttp = require('chai-http');
let should = chai.should();
var expect = chai.expect;
chai.use(chaiHttp);
// load certificates
let fs = require('fs')
let key = fs.readFileSync(__dirname + '/user.key')
let cert = fs.readFileSync(__dirname + '/user.crt')
describe('client certificate call', () => {
it('should return data', () => {
chai.request('https://127.0.0.1')
.get('/url')
.key(key)
.cert(cert, 'secret')
// .passphrase('secret')
.end((err, res) => {
res.should.have.status(200);
done();
});
});
})
使用axios实现了以下目的:
var axios = require('axios')
var https = require('https')
var fs = require('fs')
var instance = axios.create({
httpsAgent: new https.Agent({
cert: fs.readFileSync(`user.cert`),
key: fs.readFileSync(`user.key`),
passphrase: 'secret',
rejectUnauthorized: false
})
})
instance.get('url')
.then( function(response) {
console.log(response)
})
感谢Axios更新,非常棒的东西