AJ ONeal
5 years ago
6 changed files with 139 additions and 33 deletions
@ -1,2 +1,2 @@ |
|||
ZONE=example.co.uk |
|||
TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|||
RECORD=example.co.uk |
|||
WEBROOT=/tmp/acme-challenge |
|||
|
@ -1,31 +1,82 @@ |
|||
'use strict'; |
|||
|
|||
var request; |
|||
var defaults = {}; |
|||
//var request;
|
|||
var promisify = require('util').promisify; |
|||
var os = require('os'); |
|||
var fs = require('fs'); |
|||
var writeFile = promisify(fs.writeFile); |
|||
var readFile = promisify(fs.readFile); |
|||
var unlink = promisify(fs.unlink); |
|||
var mkdirp = promisify(require('@root/mkdirp')); |
|||
var path = require('path'); |
|||
|
|||
var defaults = { |
|||
webroot: path.join(require('os').tmpdir(), 'acme-challenge') |
|||
}; |
|||
|
|||
module.exports.create = function(config) { |
|||
var webroot = config.webroot || config.webrootPath || defaults.webroot; |
|||
|
|||
function tpl(str, ch) { |
|||
return str |
|||
.replace(/\s*{+\s*domain\s*}+\s*/gi, ch.identifier.value) |
|||
.replace(/^~/, os.homedir()); |
|||
} |
|||
|
|||
return { |
|||
// exposed to make testable
|
|||
_tpl: tpl, |
|||
|
|||
init: function(opts) { |
|||
request = opts.request; |
|||
//request = opts.request;
|
|||
return null; |
|||
}, |
|||
|
|||
set: function(data) { |
|||
// console.log('Add Key Auth URL', data);
|
|||
|
|||
var ch = data.challenge; |
|||
// console.info('Add Key Auth URL', data);
|
|||
throw Error('setting key authorization not implemented'); |
|||
var pathname = tpl(webroot, ch); |
|||
|
|||
return mkdirp(pathname) |
|||
.then(function() { |
|||
return writeFile( |
|||
path.join(pathname, ch.token), |
|||
ch.keyAuthorization |
|||
); |
|||
}) |
|||
.then(function() { |
|||
return null; |
|||
}); |
|||
}, |
|||
|
|||
remove: function(data) { |
|||
get: function(data) { |
|||
// console.log('List Key Auth URL', data);
|
|||
|
|||
var ch = data.challenge; |
|||
// console.info('Remove Key Auth URL', data);
|
|||
throw Error('removing key authorization not implemented'); |
|||
var pathname = tpl(webroot, ch); |
|||
|
|||
return readFile(path.join(pathname, ch.token), 'utf8') |
|||
.then(function(keyAuth) { |
|||
return { keyAuthorization: keyAuth }; |
|||
}) |
|||
.catch(function(err) { |
|||
if ('ENOENT' !== err.code) { |
|||
throw err; |
|||
} |
|||
return null; |
|||
}); |
|||
}, |
|||
|
|||
get: function(data) { |
|||
remove: function(data) { |
|||
// console.log('Remove Key Auth URL', data);
|
|||
|
|||
var ch = data.challenge; |
|||
// console.info('List Key Auth URL', data);
|
|||
throw Error('retrieving key authorization not implemented'); |
|||
var pathname = tpl(webroot, ch); |
|||
|
|||
return unlink(path.join(pathname, ch.token)).then(function() { |
|||
return null; |
|||
}); |
|||
} |
|||
}; |
|||
}; |
|||
|
@ -0,0 +1,34 @@ |
|||
{ |
|||
"name": "acme-http-01-webroot", |
|||
"version": "3.0.0", |
|||
"lockfileVersion": 1, |
|||
"requires": true, |
|||
"dependencies": { |
|||
"@root/mkdirp": { |
|||
"version": "1.0.0", |
|||
"resolved": "https://registry.npmjs.org/@root/mkdirp/-/mkdirp-1.0.0.tgz", |
|||
"integrity": "sha512-hxGAYUx5029VggfG+U9naAhQkoMSXtOeXtbql97m3Hi6/sQSRL/4khKZPyOF6w11glyCOU38WCNLu9nUcSjOfA==" |
|||
}, |
|||
"@root/request": { |
|||
"version": "1.3.11", |
|||
"resolved": "https://registry.npmjs.org/@root/request/-/request-1.3.11.tgz", |
|||
"integrity": "sha512-3a4Eeghcjsfe6zh7EJ+ni1l8OK9Fz2wL1OjP4UCa0YdvtH39kdXB9RGWuzyNv7dZi0+Ffkc83KfH0WbPMiuJFw==", |
|||
"dev": true |
|||
}, |
|||
"acme-challenge-test": { |
|||
"version": "3.3.2", |
|||
"resolved": "https://registry.npmjs.org/acme-challenge-test/-/acme-challenge-test-3.3.2.tgz", |
|||
"integrity": "sha512-0AbMcaON20wpI5vzFDAqwcv2VerY4xIlNCqX0w1xEJUIu/EQtQNmkje+rKNuy2TUl2KBMdIaR6YBbJUdaEiC4w==", |
|||
"dev": true, |
|||
"requires": { |
|||
"@root/request": "^1.3.11" |
|||
} |
|||
}, |
|||
"dotenv": { |
|||
"version": "8.0.0", |
|||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.0.0.tgz", |
|||
"integrity": "sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg==", |
|||
"dev": true |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue