mongo/jstests/ssl/ssl_mongodb_x509.js

50 lines
1.5 KiB
JavaScript

import {ReplSetTest} from "jstests/libs/replsettest.js";
import {SERVER_CERT} from "jstests/ssl/libs/ssl_helpers.js";
jsTest.log("Assert mongod doesn\'t start with CA file missing and clusterAuthMode=x509.");
let tlsParams = {
clusterAuthMode: "x509",
tlsMode: "requireTLS",
setParameter: {tlsUseSystemCA: true},
tlsCertificateKeyFile: SERVER_CERT,
};
assert.throws(() => MongoRunner.runMongod(tlsParams), [], "server started with x509 clusterAuthMode but no CA file");
jsTest.log("Assert mongos doesn\'t start with CA file missing and clusterAuthMode=x509.");
let rstOptions = {
waitForKeys: false,
isConfigServer: true,
hostname: getHostName(),
useHostName: true,
nodes: 1,
};
let startOptions = {
// Ensure that journaling is always enabled for config servers.
configsvr: "",
storageEngine: "wiredTiger",
tlsMode: "allowTLS",
tlsCertificateKeyFile: "jstests/libs/trusted-server.pem",
tlsCAFile: "jstests/libs/ca.pem",
};
let configRS = new ReplSetTest(rstOptions);
configRS.startSet(startOptions);
// Make sure the mongoS failed to start up for the proper reason.
assert.throws(
() =>
MongoRunner.runMongos({
clusterAuthMode: "x509",
tlsMode: "requireTLS",
tlsCertificateKeyFile: SERVER_CERT,
configdb: configRS.getURL(),
}),
[],
"mongos started with x509 clusterAuthMode but no CA file",
);
assert.neq(-1, rawMongoProgramOutput(".*").search("No TLS certificate validation can be performed"));
configRS.stopSet();