mirror of
https://github.com/usebruno/bruno.git
synced 2024-11-22 07:53:34 +01:00
support alternative cacert
This commit is contained in:
parent
99239e19b4
commit
1ed39a5ea6
@ -113,6 +113,10 @@ const builder = async (yargs) => {
|
|||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
default: false
|
default: false
|
||||||
})
|
})
|
||||||
|
.option('cacert', {
|
||||||
|
type: 'string',
|
||||||
|
description: 'CA certificate to verify peer against'
|
||||||
|
})
|
||||||
.option('env', {
|
.option('env', {
|
||||||
describe: 'Environment variables',
|
describe: 'Environment variables',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
@ -131,6 +135,7 @@ const handler = async function (argv) {
|
|||||||
try {
|
try {
|
||||||
let {
|
let {
|
||||||
filename,
|
filename,
|
||||||
|
cacert,
|
||||||
env,
|
env,
|
||||||
insecure,
|
insecure,
|
||||||
r: recursive
|
r: recursive
|
||||||
@ -178,7 +183,21 @@ const handler = async function (argv) {
|
|||||||
const options = getOptions();
|
const options = getOptions();
|
||||||
if(insecure) {
|
if(insecure) {
|
||||||
options['insecure'] = true
|
options['insecure'] = true
|
||||||
}
|
}
|
||||||
|
if(cacert && cacert.length) {
|
||||||
|
if(insecure) {
|
||||||
|
console.error(chalk.red(`Ignoring the cacert option since insecure connections are enabled`));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const pathExists = await exists(cacert);
|
||||||
|
if(pathExists) {
|
||||||
|
options['cacert'] = cacert
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.error(chalk.red(`Cacert File ${cacert} does not exist`));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const _isFile = await isFile(filename);
|
const _isFile = await isFile(filename);
|
||||||
if(_isFile) {
|
if(_isFile) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const qs = require('qs');
|
const qs = require('qs');
|
||||||
const chalk = require('chalk');
|
const chalk = require('chalk');
|
||||||
|
const fs = require('fs');
|
||||||
const { forOwn, each, extend, get } = require('lodash');
|
const { forOwn, each, extend, get } = require('lodash');
|
||||||
const FormData = require('form-data');
|
const FormData = require('form-data');
|
||||||
const axios = require('axios');
|
const axios = require('axios');
|
||||||
@ -44,12 +45,26 @@ const runSingleRequest = async function (filename, bruJson, collectionPath, coll
|
|||||||
// interpolate variables inside request
|
// interpolate variables inside request
|
||||||
interpolateVars(request, envVariables, collectionVariables);
|
interpolateVars(request, envVariables, collectionVariables);
|
||||||
|
|
||||||
const insecure = get(getOptions(), 'insecure', false);
|
const options = getOptions();
|
||||||
|
const insecure = get(options, 'insecure', false);
|
||||||
if(insecure) {
|
if(insecure) {
|
||||||
request.httpsAgent = new https.Agent({
|
request.httpsAgent = new https.Agent({
|
||||||
rejectUnauthorized: false
|
rejectUnauthorized: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
const cacert = options['cacert'];
|
||||||
|
if (cacert && cacert.length > 1) {
|
||||||
|
try {
|
||||||
|
caCrt = fs.readFileSync(cacert)
|
||||||
|
request.httpsAgent = new https.Agent({
|
||||||
|
ca: caCrt
|
||||||
|
});
|
||||||
|
} catch(err) {
|
||||||
|
console.log('Error reading CA cert file:' + cacert, err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// stringify the request url encoded params
|
// stringify the request url encoded params
|
||||||
if(request.headers['content-type'] === 'application/x-www-form-urlencoded') {
|
if(request.headers['content-type'] === 'application/x-www-form-urlencoded') {
|
||||||
|
Loading…
Reference in New Issue
Block a user