| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | var path = require('path'); | 
					
						
							| 
									
										
										
										
											2015-12-12 14:20:12 +00:00
										 |  |  | var leBinPath = require('homedir')() + '/.local/share/letsencrypt/bin/letsencrypt'; | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | var LEP = require('letsencrypt-python'); | 
					
						
							|  |  |  | var lep = LEP.create(leBinPath, { debug: true }); | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | var conf = { | 
					
						
							|  |  |  |   domains: process.argv[2] | 
					
						
							|  |  |  | , email: process.argv[3] | 
					
						
							|  |  |  | , agree: process.argv[4] | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | var port = 80; | 
					
						
							|  |  |  | var tlsPort = 5001; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (!conf.domains || !conf.email || !conf.agree) { | 
					
						
							|  |  |  |   console.error("Usage: letsencrypt <domain1,domain2> <email> agree"); | 
					
						
							|  |  |  |   console.error("Example: letsencrypt example.com,www.example.com user@example.com agree"); | 
					
						
							|  |  |  |   return; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // backend-specific defaults
 | 
					
						
							|  |  |  | // Note: For legal reasons you should NOT set email or agreeTos as a default
 | 
					
						
							|  |  |  | var bkDefaults = { | 
					
						
							|  |  |  |   webroot: true | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | , webrootPath: path.join(__dirname, '..', 'tests', 'acme-challenge') | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | , fullchainTpl: '/live/:hostname/fullchain.pem' | 
					
						
							| 
									
										
										
										
											2015-12-12 15:19:11 +00:00
										 |  |  | , privkeyTpl: '/live/:hostname/privkey.pem' | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | , configDir: path.join(__dirname, '..', 'tests', 'letsencrypt.config') | 
					
						
							|  |  |  | , logsDir: path.join(__dirname, '..', 'tests', 'letsencrypt.logs') | 
					
						
							|  |  |  | , workDir: path.join(__dirname, '..', 'tests', 'letsencrypt.work') | 
					
						
							|  |  |  | , server: LEP.stagingServer | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | , text: true | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2015-12-12 15:19:11 +00:00
										 |  |  | var le = require('../').create(lep, bkDefaults, { }); | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | var localCerts = require('localhost.daplie.com-certificates'); | 
					
						
							|  |  |  | var express = require('express'); | 
					
						
							|  |  |  | var app = express(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | app.use('/', le.middleware()); | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | var server = require('http').createServer(); | 
					
						
							|  |  |  | server.on('request', app); | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | server.listen(port, function () { | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  |   console.log('Listening http', server.address()); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var tlsServer = require('https').createServer({ | 
					
						
							|  |  |  |   key: localCerts.key | 
					
						
							|  |  |  | , cert: localCerts.cert | 
					
						
							| 
									
										
										
										
											2015-12-12 14:20:12 +00:00
										 |  |  | , SNICallback: le.sniCallback | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  | }); | 
					
						
							|  |  |  | tlsServer.on('request', app); | 
					
						
							| 
									
										
										
										
											2015-12-12 15:05:45 +00:00
										 |  |  | tlsServer.listen(tlsPort, function () { | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  |   console.log('Listening http', tlsServer.address()); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-12 14:20:12 +00:00
										 |  |  | le.register({ | 
					
						
							| 
									
										
										
										
											2015-12-12 13:11:05 +00:00
										 |  |  |   agreeTos: 'agree' === conf.agree | 
					
						
							|  |  |  | , domains: conf.domains.split(',') | 
					
						
							|  |  |  | , email: conf.email | 
					
						
							|  |  |  | }).then(function () { | 
					
						
							|  |  |  |   console.log('success'); | 
					
						
							|  |  |  | }, function (err) { | 
					
						
							|  |  |  |   console.error(err.stack); | 
					
						
							|  |  |  | }).then(function () { | 
					
						
							|  |  |  |   server.close(); | 
					
						
							|  |  |  |   tlsServer.close(); | 
					
						
							|  |  |  | }); |