Compare commits

...

2 Commits

Author SHA1 Message Date
7ad1ffdfdc fix typos 2019-05-16 01:30:12 -06:00
8f08fd5a94 v2.1.1 2019-05-16 01:26:21 -06:00
3 changed files with 60 additions and 8 deletions

View File

@ -1,8 +1,8 @@
| [letsencrypt](https://rootprojects.org/root/greenlock.js) (library)
| [letsencrypt-cli](https://rootprojects.org/root/greenlock-cli.js)
| [letsencrypt-express](https://rootprojects.org/root/greenlock-express.js)
| [letsencrypt-koa](https://rootprojects.org/root/greenlock-koa.js)
| [letsencrypt-hapi](https://rootprojects.org/root/greenlock-hapi.js)
| [letsencrypt](https://git.rootprojects.org/root/greenlock.js) (library)
| [letsencrypt-cli](https://git.rootprojects.org/root/greenlock-cli.js)
| [letsencrypt-express](https://git.rootprojects.org/root/greenlock-express.js)
| [letsencrypt-koa](https://git.rootprojects.org/root/greenlock-koa.js)
| [letsencrypt-hapi](https://git.rootprojects.org/root/greenlock-hapi.js)
|
# le-challenge-memory

View File

@ -26,7 +26,59 @@ module.exports.create = function (defaults) {
cb(null);
}
, loopback: function (defaults, domain, challenge, done) {
var hostname = domain + (defaults.loopbackPort ? ':' + defaults.loopbackPort : '');
var urlstr = 'http://' + hostname + '/.well-known/acme-challenge/' + key;
require('http').get(urlstr, function (res) {
if (200 !== res.statusCode) {
done(new Error("local loopback failed with statusCode " + res.statusCode));
return;
}
var chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
var str = Buffer.concat(chunks).toString('utf8').trim();
done(null, str);
});
}).setTimeout(defaults.loopbackTimeout, function () {
done(new Error("loopback timeout, could not reach server"));
}).on('error', function (err) {
done(err);
});
}
, test: function (args, domain, challenge, keyAuthorization, done) {
var me = this;
var key = keyAuthorization || challenge;
me.set(args, domain, challenge, key, function (err) {
if (err) { done(err); return; }
myDefaults.loopbackPort = args.loopbackPort;
myDefaults.webrootPath = args.webrootPath;
me.loopback(args, domain, challenge, function (err, _key) {
if (err) { done(err); return; }
if (key !== _key) {
err = new Error("keyAuthorization [original] '" + key + "'"
+ " did not match [result] '" + _key + "'");
return;
}
me.remove(myDefaults, domain, challenge, function (_err) {
if (_err) { done(_err); return; }
done(err);
});
});
});
}
};
return handlers;
};

View File

@ -1,6 +1,6 @@
{
"name": "le-challenge-standalone",
"version": "2.0.1",
"version": "2.1.2",
"description": "An in-memory strategy for node-letsencrypt for setting, retrieving, and clearing ACME challenges issued by the ACME server.",
"homepage": "https://greenlock.domains/",
"main": "index.js",
@ -9,7 +9,7 @@
},
"repository": {
"type": "git",
"url": "https://rootprojects.org/root/acme-http-01-memory.git"
"url": "https://git.rootprojects.org/root/acme-http-01-memory.git"
},
"keywords": [
"le-challenge",
@ -24,6 +24,6 @@
"author": "AJ ONeal <solderjs@gmail.com> (https://solderjs.com/)",
"license": "MPL-2.0",
"bugs": {
"url": "https://rootprojects.org/root/acme-http-01-memory.js/issues"
"url": "https://git.rootprojects.org/root/acme-http-01-memory.js/issues"
}
}