AJ ONeal
5 years ago
2 changed files with 0 additions and 131 deletions
@ -1,131 +0,0 @@ |
|||
// Copyright 2018 AJ ONeal. All rights reserved
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public |
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this |
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|||
'use strict'; |
|||
|
|||
var RSA = require('rsa-compat').RSA; |
|||
var readline = require('readline'); |
|||
var rl = readline.createInterface({ |
|||
input: process.stdin, |
|||
output: process.stdout |
|||
}); |
|||
|
|||
require('./genkeypair.js'); |
|||
|
|||
function getWeb() { |
|||
rl.question( |
|||
'What web address(es) would you like to get certificates for? (ex: example.com,*.example.com) ', |
|||
function(web) { |
|||
web = (web || '').trim().split(/,/g); |
|||
if (!web[0]) { |
|||
getWeb(); |
|||
return; |
|||
} |
|||
|
|||
if ( |
|||
web.some(function(w) { |
|||
return '*' === w[0]; |
|||
}) |
|||
) { |
|||
console.log('Wildcard domains must use dns-01'); |
|||
getEmail(web, 'dns-01'); |
|||
} else { |
|||
getChallengeType(web); |
|||
} |
|||
} |
|||
); |
|||
} |
|||
|
|||
function getChallengeType(web) { |
|||
rl.question( |
|||
'What challenge will you be testing today? http-01 or dns-01? [http-01] ', |
|||
function(chType) { |
|||
chType = (chType || '').trim(); |
|||
if (!chType) { |
|||
chType = 'http-01'; |
|||
} |
|||
|
|||
getEmail(web, chType); |
|||
} |
|||
); |
|||
} |
|||
|
|||
function getEmail(web, chType) { |
|||
rl.question('What email should we use? (optional) ', function(email) { |
|||
email = (email || '').trim(); |
|||
if (!email) { |
|||
email = null; |
|||
} |
|||
|
|||
getApiStyle(web, chType, email); |
|||
}); |
|||
} |
|||
|
|||
function getApiStyle(web, chType, email) { |
|||
var defaultStyle = 'compat'; |
|||
rl.question( |
|||
'What API style would you like to test? v1-compat or promise? [v1-compat] ', |
|||
function(apiStyle) { |
|||
apiStyle = (apiStyle || '').trim(); |
|||
if (!apiStyle) { |
|||
apiStyle = 'v1-compat'; |
|||
} |
|||
|
|||
rl.close(); |
|||
|
|||
var RSA = require('rsa-compat').RSA; |
|||
var accountKeypair = RSA.import({ |
|||
privateKeyPem: require('fs').readFileSync( |
|||
__dirname + '/../tests/account.privkey.pem' |
|||
) |
|||
}); |
|||
var domainKeypair = RSA.import({ |
|||
privateKeyPem: require('fs').readFileSync( |
|||
__dirname + '/../tests/privkey.pem' |
|||
) |
|||
}); |
|||
var directoryUrl = |
|||
'https://acme-staging-v02.api.letsencrypt.org/directory'; |
|||
|
|||
if ('promise' === apiStyle) { |
|||
require('../tests/promise.js').run( |
|||
directoryUrl, |
|||
RSA, |
|||
web, |
|||
chType, |
|||
email, |
|||
accountKeypair, |
|||
domainKeypair |
|||
); |
|||
} else if ('cb' === apiStyle) { |
|||
require('../tests/cb.js').run( |
|||
directoryUrl, |
|||
RSA, |
|||
web, |
|||
chType, |
|||
email, |
|||
accountKeypair, |
|||
domainKeypair |
|||
); |
|||
} else { |
|||
if ('v1-compat' !== apiStyle) { |
|||
console.warn( |
|||
"Didn't understand '" + apiStyle + "', using 'v1-compat' instead..." |
|||
); |
|||
} |
|||
require('../tests/compat.js').run( |
|||
directoryUrl, |
|||
RSA, |
|||
web, |
|||
chType, |
|||
email, |
|||
accountKeypair, |
|||
domainKeypair |
|||
); |
|||
} |
|||
} |
|||
); |
|||
} |
|||
|
|||
getWeb(); |
Loading…
Reference in new issue