mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
To accompany --use-system-ca, this adds a new API that allows querying various kinds of CA certificates. - If the first argument `type` is `"default"` or undefined, it returns the CA certificates that will be used by Node.js TLS clients by default, which includes the Mozilla CA if --use-bundled-ca is enabled or --use-openssl-ca is not enabled, and the system certificates if --use-system-ca is enabled, and the extra certificates if NODE_EXTRA_CA_CERTS is used. - If `type` is `"system"` this returns the system certificates, regardless of whether --use-system-ca is enabeld or not. - If `type` is `"bundled"` this is the same as `tls.rootCertificates` and returns the Mozilla CA certificates. - If `type` is `"extra"` this returns the certificates parsed from the path specified by NODE_EXTRA_CA_CERTS. Drive-by: remove the inaccurate description in `tls.rootCertificates` about including system certificates, since it in fact does not include them, and also it is contradicting the previous description about `tls.rootCertificates` always returning the Mozilla CA store and staying the same across platforms. PR-URL: https://github.com/nodejs/node/pull/57107 Reviewed-By: James M Snell <jasnell@gmail.com>
18 lines
599 B
JavaScript
18 lines
599 B
JavaScript
'use strict';
|
|
// Flags: --no-use-openssl-ca
|
|
// This tests that tls.getCACertificates() returns the bundled
|
|
// certificates correctly.
|
|
|
|
const common = require('../common');
|
|
if (!common.hasCrypto) common.skip('missing crypto');
|
|
|
|
const assert = require('assert');
|
|
const tls = require('tls');
|
|
|
|
const defaultSet = new Set(tls.getCACertificates('default'));
|
|
const bundledSet = new Set(tls.getCACertificates('bundled'));
|
|
|
|
// When --use-openssl-ca is false (i.e. bundled CA is sued),
|
|
// default is a superset of bundled certificates.
|
|
assert.deepStrictEqual(defaultSet.intersection(bundledSet), bundledSet);
|