update approveDomains function as per #15
This commit is contained in:
parent
a612f4f98b
commit
73f2051188
63
index.js
63
index.js
|
@ -409,28 +409,19 @@ Greenlock.create = function (gl) {
|
||||||
log(gl.debug, 'gl.getCertificates called for', domain, 'with certs for', certs && certs.altnames || 'NONE');
|
log(gl.debug, 'gl.getCertificates called for', domain, 'with certs for', certs && certs.altnames || 'NONE');
|
||||||
var opts = { domain: domain, domains: certs && certs.altnames || [ domain ] };
|
var opts = { domain: domain, domains: certs && certs.altnames || [ domain ] };
|
||||||
|
|
||||||
try {
|
function onApproved(results) {
|
||||||
gl.approveDomains(opts, certs, function (_err, results) {
|
var certificate = results.certificate || results.certs;
|
||||||
if (_err) {
|
var options = results.options || results;
|
||||||
if (false !== gl.logRejectedDomains) {
|
if (results.certificate) {
|
||||||
console.error("[Error] approveDomains rejected tls sni '" + domain + "'");
|
results.certificate = null;
|
||||||
console.error("[Error] (see https://git.coolaj86.com/coolaj86/greenlock.js/issues/11)");
|
|
||||||
if ('E_REJECT_SNI' !== _err.code) {
|
|
||||||
console.error("[Error] This is the rejection message:");
|
|
||||||
console.error(_err.message);
|
|
||||||
}
|
|
||||||
console.error("");
|
|
||||||
}
|
|
||||||
cb(_err);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log(gl.debug, 'gl.approveDomains called with certs for', results.certs && results.certs.altnames || 'NONE', 'and options:');
|
log(gl.debug, 'gl.approveDomains called with certs for', certificate && certificate.altnames || 'NONE', 'and options:');
|
||||||
log(gl.debug, results.options);
|
log(gl.debug, options);
|
||||||
|
|
||||||
if (results.certs) {
|
if (certificate) {
|
||||||
log(gl.debug, 'gl renewing');
|
log(gl.debug, 'gl renewing');
|
||||||
return gl.core.certificates.renewAsync(results.options, results.certs).then(
|
return gl.core.certificates.renewAsync(options, certificate).then(
|
||||||
function (certs) {
|
function (certs) {
|
||||||
// Workaround for https://github.com/nodejs/node/issues/22389
|
// Workaround for https://github.com/nodejs/node/issues/22389
|
||||||
gl._updateServernames(certs);
|
gl._updateServernames(certs);
|
||||||
|
@ -446,7 +437,7 @@ Greenlock.create = function (gl) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
log(gl.debug, 'gl getting from disk or registering new');
|
log(gl.debug, 'gl getting from disk or registering new');
|
||||||
return gl.core.certificates.getAsync(results.options).then(
|
return gl.core.certificates.getAsync(options).then(
|
||||||
function (certs) {
|
function (certs) {
|
||||||
// Workaround for https://github.com/nodejs/node/issues/22389
|
// Workaround for https://github.com/nodejs/node/issues/22389
|
||||||
gl._updateServernames(certs);
|
gl._updateServernames(certs);
|
||||||
|
@ -460,7 +451,39 @@ Greenlock.create = function (gl) {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
function onRejected(_err) {
|
||||||
|
if (false !== gl.logRejectedDomains) {
|
||||||
|
console.error("[Error] approveDomains rejected tls sni '" + domain + "'");
|
||||||
|
console.error("[Error] (see https://git.coolaj86.com/coolaj86/greenlock.js/issues/11)");
|
||||||
|
if ('E_REJECT_SNI' !== _err.code) {
|
||||||
|
console.error("[Error] This is the rejection message:");
|
||||||
|
console.error(_err.message);
|
||||||
|
}
|
||||||
|
console.error("");
|
||||||
|
}
|
||||||
|
cb(_err);
|
||||||
|
}
|
||||||
|
function onMaybe(_err, results) {
|
||||||
|
if (_err) { onRejected(_err); return; }
|
||||||
|
onApproved(results);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (certs) {
|
||||||
|
opts.certificate = certs;
|
||||||
|
//opts.subject = certs.subject;
|
||||||
|
//opts.altnames = certs.altnames;
|
||||||
|
opts.servernames = [certs.subject].concat(certs.altnames);
|
||||||
|
opts.servername = opts.domain;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (1 === gl.approveDomains.length) {
|
||||||
|
return gl.approveDomains(opts).then(onApproved, onRejected);
|
||||||
|
} else if (2 === gl.approveDomains.length) {
|
||||||
|
gl.approveDomains(opts, onMaybe);
|
||||||
|
} else {
|
||||||
|
gl.approveDomains(opts, certs, onMaybe);
|
||||||
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
console.error("[ERROR] Something went wrong in approveDomains:");
|
console.error("[ERROR] Something went wrong in approveDomains:");
|
||||||
console.error(e);
|
console.error(e);
|
||||||
|
|
Loading…
Reference in New Issue