2016-08-11 00:43:35 +00:00
|
|
|
'use strict';
|
|
|
|
|
2016-08-11 07:07:20 +00:00
|
|
|
function log(debug) {
|
|
|
|
if (!debug) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var args = Array.prototype.slice.call(arguments);
|
|
|
|
args.shift();
|
|
|
|
args.unshift("[le/lib/core.js]");
|
|
|
|
console.log.apply(console, args);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-11 00:43:35 +00:00
|
|
|
module.exports.create = function (opts) {
|
|
|
|
|
2016-08-11 04:58:14 +00:00
|
|
|
|
|
|
|
|
2016-08-11 05:10:37 +00:00
|
|
|
opts.sni = require('le-sni-auto').create({
|
2016-08-11 04:58:14 +00:00
|
|
|
notBefore: opts.notBefore || (10 * 24 * 60 * 60 * 1000)
|
|
|
|
, notAfter: opts.notAfter || (5 * 24 * 60 * 60 * 1000)
|
|
|
|
, getCertificates: function (domain, certs, cb) {
|
2016-08-11 00:43:35 +00:00
|
|
|
opts.approveDomains(domain, certs, function (err, certs) {
|
2016-08-11 04:58:14 +00:00
|
|
|
process.send({ type: 'LE_REQUEST', domain: domain, options: { domains: [domain] }, certs: certs });
|
2016-08-11 00:43:35 +00:00
|
|
|
|
|
|
|
process.on('message', function (msg) {
|
2016-08-11 07:07:20 +00:00
|
|
|
log(opts.debug, 'Message from master');
|
|
|
|
log(opts.debug, msg);
|
|
|
|
|
2016-08-11 00:43:35 +00:00
|
|
|
if (msg.domain === domain) {
|
2016-08-11 07:07:20 +00:00
|
|
|
cb(null, msg.certs);
|
2016-08-11 00:43:35 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
2016-08-11 05:10:37 +00:00
|
|
|
});
|
2016-08-11 00:43:35 +00:00
|
|
|
|
2016-08-11 04:58:14 +00:00
|
|
|
|
|
|
|
|
2016-08-11 05:10:37 +00:00
|
|
|
opts.httpsOptions = require('localhost.daplie.com-certificates').merge({ SNICallback: opts.sni.sniCallback });
|
2016-08-11 04:58:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
opts.challenge = {
|
|
|
|
get: opts.getChallenge
|
|
|
|
|| (opts.challenge && opts.challenge.get)
|
|
|
|
|| require('le-challenge-fs').create({ webrootPath: opts.webrootPath }).get
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// opts.challenge.get, opts.acmeChallengePrefix
|
|
|
|
opts.middleware = require('letsencrypt/lib/middleware').create(opts);
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-11 00:43:35 +00:00
|
|
|
return opts;
|
|
|
|
};
|