mirror of
				https://github.com/therootcompany/greenlock.js.git
				synced 2024-11-16 17:29:00 +00:00 
			
		
		
		
	
		
			
	
	
		
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | var LE = require('../'); | ||
|  | var config = require('./config-minimal'); | ||
|  | 
 | ||
|  | // Note: you should make this special dir in your product and leave it empty
 | ||
|  | config.le.webrootPath = __dirname + '/../tests/acme-challenge'; | ||
|  | config.le.server = LE.stagingServer; | ||
|  | 
 | ||
|  | var le = LE.create(config.backend, config.le, { | ||
|  |   sniRegisterCallback: function (args, expiredCert, cb) { | ||
|  |     // In theory you should never get an expired certificate because
 | ||
|  |     // the certificates automatically renew in the background starting
 | ||
|  |     // about a week before they expire.
 | ||
|  |     // (the default behavior is to randomly stagger renewals)
 | ||
|  |     // so in this case we'll just return the expired certificate
 | ||
|  |     if (expiredCert) { return cb(null, expiredCert); } | ||
|  | 
 | ||
|  |     // If we get here that means this domain hasn't been registered yet
 | ||
|  |     // Security Warning: you should either manually register domains
 | ||
|  |     // and return null here or check that the sni header isn't being
 | ||
|  |     // spoofed and this is actually a domain you own before registering
 | ||
|  |     //
 | ||
|  |     //   cb(null, null);
 | ||
|  | 
 | ||
|  |     var hostname = args.domains[0]; | ||
|  |     console.log("[TODO] check that '" + hostname + "' is one I expect"); | ||
|  | 
 | ||
|  |     args.agreeTos = true; | ||
|  |     args.email = 'user@example.com'; | ||
|  | 
 | ||
|  |     le.register(args, cb); | ||
|  |   } | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | //
 | ||
|  | // Express App
 | ||
|  | //
 | ||
|  | var app = require('express')(); | ||
|  | app.use('/', le.middleware()); | ||
|  | 
 | ||
|  | 
 | ||
|  | //
 | ||
|  | // HTTP & HTTPS servers
 | ||
|  | //
 | ||
|  | require('http').createServer(app).listen(config.plainPort, function () { | ||
|  |   console.log('Listening http', this.address()); | ||
|  | }); | ||
|  | 
 | ||
|  | require('https').createServer({ | ||
|  |   key: config.tlsKey | ||
|  | , cert: config.tlsCert | ||
|  | , SNICallback: le.sniCallback | ||
|  | }, app).listen(config.tlsPort, function () { | ||
|  |   console.log('Listening http', this.address()); | ||
|  | }); |