31 lines
993 B
JavaScript
31 lines
993 B
JavaScript
'use strict';
|
|
|
|
var fs = require('fs');
|
|
var PromiseA = require('bluebird');
|
|
|
|
module.exports.fetchFromDisk = function (args, defaults) {
|
|
var hostname = args.domains[0];
|
|
var crtpath = (args.fullchainPath || defaults.fullchainPath)
|
|
|| (defaults.configDir
|
|
+ (args.fullchainTpl || defaults.fullchainTpl || ':hostname/fullchain.pem').replace(/:hostname/, hostname));
|
|
var privpath = (args.privkeyPath || defaults.privkeyPath)
|
|
|| (defaults.configDir
|
|
+ (args.privkeyTpl || defaults.privkeyTpl || ':hostname/privkey.pem').replace(/:hostname/, hostname));
|
|
|
|
return PromiseA.all([
|
|
fs.readFileAsync(privpath, 'ascii')
|
|
, fs.readFileAsync(crtpath, 'ascii')
|
|
// stat the file, not the link
|
|
, fs.statAsync(crtpath)
|
|
]).then(function (arr) {
|
|
return {
|
|
key: arr[0] // privkey.pem
|
|
, cert: arr[1] // fullchain.pem
|
|
// TODO parse centificate for lifetime / expiresAt
|
|
, issuedAt: arr[2].mtime.valueOf()
|
|
};
|
|
}, function () {
|
|
return null;
|
|
});
|
|
};
|