mirror of
				https://github.com/therootcompany/acme.js.git
				synced 2024-11-16 17:29:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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();
 |