mirror of
				https://github.com/therootcompany/greenlock-express.js.git
				synced 2024-11-16 17:28:59 +00:00 
			
		
		
		
	
		
			
	
	
		
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | 
 | ||
|  | // this is the stuff that should run in the main foreground process,
 | ||
|  | // whether it's single or master
 | ||
|  | 
 | ||
|  | var major = process.versions.node.split(".")[0]; | ||
|  | var minor = process.versions.node.split(".")[1]; | ||
|  | var _hasSetSecureContext = false; | ||
|  | var shouldUpgrade = false; | ||
|  | 
 | ||
|  | // TODO can we trust earlier versions as well?
 | ||
|  | if (major >= 12) { | ||
|  | 	_hasSetSecureContext = !!require("http2").createSecureServer({}, function() {}).setSecureContext; | ||
|  | } else { | ||
|  | 	_hasSetSecureContext = !!require("https").createServer({}, function() {}).setSecureContext; | ||
|  | } | ||
|  | 
 | ||
|  | // TODO document in issues
 | ||
|  | if (!_hasSetSecureContext) { | ||
|  | 	// TODO this isn't necessary if greenlock options are set with options.cert
 | ||
|  | 	console.warn("Warning: node " + process.version + " is missing tlsSocket.setSecureContext()."); | ||
|  | 	console.warn("         The default certificate may not be set."); | ||
|  | 	shouldUpgrade = true; | ||
|  | } | ||
|  | 
 | ||
|  | if (major < 11 || (11 === major && minor < 2)) { | ||
|  | 	// https://github.com/nodejs/node/issues/24095
 | ||
|  | 	console.warn("Warning: node " + process.version + " is missing tlsSocket.getCertificate()."); | ||
|  | 	console.warn("         This is necessary to guard against domain fronting attacks."); | ||
|  | 	shouldUpgrade = true; | ||
|  | } | ||
|  | 
 | ||
|  | if (shouldUpgrade) { | ||
|  | 	console.warn("Warning: Please upgrade to node v11.2.0 or greater."); | ||
|  |   console.warn(); | ||
|  | } |