The motivation for this commit is that we need to specify system CA
certificates when building node. While we are aware of the environment
variable NODE_EXTRA_CA_CERTS this is not a great solution as we build
an RPM and we also don't want users to be able to unset them.
The suggestion is to add a configure time property like this:
--openssl-system-ca-path=OPENSSL_SYSTEM_CA_PATH
Use the specified path to system CA (PEM format) in
addition to the OpenSSL supplied CA store or compiled-
in Mozilla CA copy.
Usage example:
$ ./configure --openssl-system-ca-path=/etc/pki/tls/certs/ca-bundle.crt
This would add the specified CA certificates in addition to the ones
already being used.
Backport-PR-URL: https://github.com/nodejs/node/pull/18173
PR-URL: https://github.com/nodejs/node/pull/16790
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
|
|
// Checks that the internal process.config is equivalent to the config.gypi file
|
|
// created when we run configure.
|
|
|
|
const assert = require('assert');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// Check for existence of `process.config`.
|
|
assert(process.hasOwnProperty('config'));
|
|
|
|
// Ensure that `process.config` is an Object.
|
|
assert.strictEqual(Object(process.config), process.config);
|
|
|
|
const configPath = path.resolve(__dirname, '..', '..', 'config.gypi');
|
|
|
|
if (!fs.existsSync(configPath)) {
|
|
common.skip('config.gypi does not exist.');
|
|
}
|
|
|
|
let config = fs.readFileSync(configPath, 'utf8');
|
|
|
|
// Clean up comment at the first line.
|
|
config = config.split('\n').slice(1).join('\n');
|
|
config = config.replace(/"/g, '\\"');
|
|
config = config.replace(/'/g, '"');
|
|
config = JSON.parse(config, function(key, value) {
|
|
if (value === 'true') return true;
|
|
if (value === 'false') return false;
|
|
return value;
|
|
});
|
|
|
|
try {
|
|
assert.deepStrictEqual(config, process.config);
|
|
} catch (e) {
|
|
// If the assert fails, it only shows 3 lines. We need all the output to
|
|
// compare.
|
|
console.log('config:', config);
|
|
console.log('process.config:', process.config);
|
|
|
|
throw e;
|
|
}
|