Simple node.js module to split a single certificate authority chain file (bundle, ca-bundle, ca-chain, etc.) into an array, as expected by the node.js tls api
npm install split-ca
Usage will depend on your server module of choice, but most https modules require an options hash with ca
, key
, and cert
. Simply give split-ca the filepath of your bundle file.
var https = require('https');
var fs = require('fs');
var splitca = require('split-ca');
var options = {
ca: splitca("path/to/ca_bundle_file"),
key:fs.readFileSync("path/to/server_key_file"),
cert:fs.readFileSync("path/to/server_cert_file"),
requestCert: true,
rejectUnauthorized: true
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
split-ca('filepath','split-string','encoding')
A standard node path to your object. An error is thrown if the file cannot be parsed, is not formatted properly.
Optional. Defaults to "\n"
, can be replaced with anything.
Optional. Defaults to "utf-8"
, can be replaced with anything accepted by node's fs
module.
Thanks to Benjie Gillam for the blog post and sample code that was unashamedly ripped for this module.