mirror of
				https://github.com/therootcompany/greenlock.js.git
				synced 2024-11-16 17:29:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| //var Greenlock = require('greenlock');
 | |
| var Greenlock = require('../');
 | |
| var db = {};
 | |
| 
 | |
| var config = {
 | |
| 	server: 'https://acme-v02.api.letsencrypt.org/directory',
 | |
| 	version: 'draft-11',
 | |
| 
 | |
| 	configDir: require('os').homedir() + '/acme/etc', // or /etc/acme or wherever
 | |
| 
 | |
| 	privkeyPath: ':config/live/:hostname/privkey.pem', //
 | |
| 	fullchainPath: ':config/live/:hostname/fullchain.pem', // Note: both that :config and :hostname
 | |
| 	certPath: ':config/live/:hostname/cert.pem', //       will be templated as expected
 | |
| 	chainPath: ':config/live/:hostname/chain.pem', //
 | |
| 
 | |
| 	rsaKeySize: 2048,
 | |
| 
 | |
| 	debug: true
 | |
| };
 | |
| 
 | |
| var handlers = {
 | |
| 	setChallenge: function(opts, hostname, key, val, cb) {
 | |
| 		// called during the ACME server handshake, before validation
 | |
| 		db[key] = {
 | |
| 			hostname: hostname,
 | |
| 			key: key,
 | |
| 			val: val
 | |
| 		};
 | |
| 
 | |
| 		cb(null);
 | |
| 	},
 | |
| 	removeChallenge: function(opts, hostname, key, cb) {
 | |
| 		// called after validation on both success and failure
 | |
| 		db[key] = null;
 | |
| 		cb(null);
 | |
| 	},
 | |
| 	getChallenge: function(opts, hostname, key, cb) {
 | |
| 		// this is special because it is called by the webserver
 | |
| 		cb(null, db[key].val); // (see greenlock-cli/bin & greenlock-express/standalone),
 | |
| 		// not by the library itself
 | |
| 	},
 | |
| 	agreeToTerms: function(tosUrl, cb) {
 | |
| 		// gives you an async way to expose the legal agreement
 | |
| 		cb(null, tosUrl); // (terms of use) to your users before accepting
 | |
| 	}
 | |
| };
 | |
| 
 | |
| var greenlock = Greenlock.create(config, handlers);
 | |
| console.error(
 | |
| 	'CHANGE THE EMAIL, DOMAINS, AND AGREE TOS IN THE EXAMPLE BEFORE RUNNING IT'
 | |
| );
 | |
| process.exit(1);
 | |
| // checks :conf/renewal/:hostname.conf
 | |
| greenlock.register(
 | |
| 	{
 | |
| 		// and either renews or registers
 | |
| 		domains: ['example.com'], // CHANGE TO YOUR DOMAIN
 | |
| 		email: 'user@email.com', // CHANGE TO YOUR EMAIL
 | |
| 		agreeTos: false, // set to true to automatically accept an agreement
 | |
| 		// which you have pre-approved (not recommended)
 | |
| 		rsaKeySize: 2048
 | |
| 	},
 | |
| 	function(err) {
 | |
| 		if (err) {
 | |
| 			// Note: you must have a webserver running
 | |
| 			// and expose handlers.getChallenge to it
 | |
| 			// in order to pass validation
 | |
| 			// See greenlock-cli and or greenlock-express
 | |
| 			console.error('[Error]: greenlock/examples/standalone');
 | |
| 			console.error(err.stack);
 | |
| 		} else {
 | |
| 			console.log('success');
 | |
| 		}
 | |
| 	}
 | |
| );
 |