'use strict'; module.exports.run = function run(directoryUrl, RSA, web, chType, email, accountKeypair, domainKeypair) { // [ 'test.ppl.family' ] 'coolaj86@gmail.com''http-01' var acme2 = require('../').ACME.create({ RSA: RSA }); acme2.init(directoryUrl).then(function () { var options = { agreeToTerms: function (tosUrl, agree) { agree(null, tosUrl); } , setChallenge: function (opts, cb) { var pathname; console.log(""); console.log('identifier:'); console.log(opts.identifier); console.log('hostname:'); console.log(opts.hostname); console.log('type:'); console.log(opts.type); console.log('token:'); console.log(opts.token); console.log('thumbprint:'); console.log(opts.thumbprint); console.log('keyAuthorization:'); console.log(opts.keyAuthorization); console.log('dnsAuthorization:'); console.log(opts.dnsAuthorization); console.log(""); if ('http-01' === opts.type) { pathname = opts.hostname + acme2.challengePrefixes['http-01'] + "/" + opts.token; console.log("Put the string '" + opts.keyAuthorization + "' into a file at '" + pathname + "'"); console.log("echo '" + opts.keyAuthorization + "' > '" + pathname + "'"); } else if ('dns-01' === opts.type) { pathname = acme2.challengePrefixes['dns-01'] + "." + opts.hostname.replace(/^\*\./, ''); console.log("Put the string '" + opts.dnsAuthorization + "' into the TXT record '" + pathname + "'"); console.log("ddig TXT " + pathname + " '" + opts.dnsAuthorization + "'"); } else { cb(new Error("[acme-v2] unrecognized challenge type")); return; } console.log("\nThen hit the 'any' key to continue..."); function onAny() { console.log("'any' key was hit"); process.stdin.pause(); process.stdin.removeListener('data', onAny); process.stdin.setRawMode(false); cb(); } process.stdin.setRawMode(true); process.stdin.resume(); process.stdin.on('data', onAny); } , removeChallenge: function (opts, cb) { // hostname, key console.log('[acme-v2] remove challenge', opts.hostname, opts.keyAuthorization); setTimeout(cb, 1 * 1000); } , challengeType: chType , email: email , accountKeypair: accountKeypair , domainKeypair: domainKeypair , domains: web }; acme2.accounts.create(options).then(function (account) { console.log('[acme-v2] account:'); console.log(account); acme2.certificates.create(options).then(function (fullchainPem) { console.log('[acme-v2] fullchain.pem:'); console.log(fullchainPem); }); }); }); };