Merge pull request #187 from BrentShikoski/feature/support-custom-cacert

support custom cacert file
This commit is contained in:
Anoop M D 2023-09-09 13:59:05 +05:30 committed by GitHub
commit 9e400085e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 11 deletions

View File

@ -47,25 +47,29 @@ const runSingleRequest = async function (filename, bruJson, collectionPath, coll
const options = getOptions();
const insecure = get(options, 'insecure', false);
const httpsAgentRequestFields = {};
if(insecure) {
request.httpsAgent = new https.Agent({
rejectUnauthorized: false
});
httpsAgentRequestFields['rejectUnauthorized'] = false;
}
else {
const cacert = options['cacert'];
if (cacert && cacert.length > 1) {
const cacertArray = [options['cacert'], process.env.SSL_CERT_FILE, process.env.NODE_EXTRA_CA_CERTS];
const cacert = cacertArray.find(el => el);
if(cacert && cacert.length > 1) {
try {
caCrt = fs.readFileSync(cacert)
request.httpsAgent = new https.Agent({
ca: caCrt
});
caCrt = fs.readFileSync(cacert);
httpsAgentRequestFields['ca'] = caCrt;
} catch(err) {
console.log('Error reading CA cert file:' + cacert, err);
}
}
}
if(Object.keys(httpsAgentRequestFields).length > 0) {
request.httpsAgent = new https.Agent({
...httpsAgentRequestFields
});
}
// stringify the request url encoded params
if(request.headers['content-type'] === 'application/x-www-form-urlencoded') {
request.data = qs.stringify(request.data);

View File

@ -153,10 +153,27 @@ const registerNetworkIpc = (mainWindow, watcher, lastOpenedCollections) => {
const preferences = getPreferences();
const sslVerification = get(preferences, 'request.sslVerification', true);
const httpsAgentRequestFields = {};
if(!sslVerification) {
httpsAgentRequestFields['rejectUnauthorized'] = false;
}
else {
const cacertArray = [preferences['cacert'], process.env.SSL_CERT_FILE, process.env.NODE_EXTRA_CA_CERTS];
cacertFile = cacertArray.find(el => el);
if(cacertFile && cacertFile.length > 1) {
try {
const fs = require('fs');
caCrt = fs.readFileSync(cacertFile);
httpsAgentRequestFields['ca'] = caCrt;
} catch(err) {
console.log('Error reading CA cert file:' + cacertFile, err);
}
}
}
if(Object.keys(httpsAgentRequestFields).length > 0) {
request.httpsAgent = new https.Agent({
rejectUnauthorized: false
...httpsAgentRequestFields
});
}