47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var DIR = module.exports;
 | 
						|
 | 
						|
// This will ALWAYS print out a notice if the URL is clearly a staging URL
 | 
						|
DIR._getDirectoryUrl = function(dirUrl, domain) {
 | 
						|
    var liveUrl = 'https://acme-v02.api.letsencrypt.org/directory';
 | 
						|
    dirUrl = DIR._getDefaultDirectoryUrl(dirUrl, '', domain);
 | 
						|
    if (!dirUrl) {
 | 
						|
        dirUrl = liveUrl;
 | 
						|
        // This will print out a notice (just once) if no directoryUrl has been supplied
 | 
						|
        if (!DIR._shownDirectoryUrl) {
 | 
						|
            DIR._shownDirectoryUrl = true;
 | 
						|
            console.info('ACME Directory URL:', dirUrl);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return dirUrl;
 | 
						|
};
 | 
						|
 | 
						|
// Handle staging URLs, pebble test server, etc
 | 
						|
DIR._getDefaultDirectoryUrl = function(dirUrl, staging, domain) {
 | 
						|
    var stagingUrl = 'https://acme-staging-v02.api.letsencrypt.org/directory';
 | 
						|
    var stagingRe = /(^http:|staging|^127\.0\.|^::|localhost)/;
 | 
						|
    var env = '';
 | 
						|
    var args = [];
 | 
						|
    if ('undefined' !== typeof process) {
 | 
						|
        env = (process.env && process.env.ENV) || '';
 | 
						|
        args = (process.argv && process.argv.slice(1)) || [];
 | 
						|
    }
 | 
						|
 | 
						|
    if (
 | 
						|
        staging ||
 | 
						|
        stagingRe.test(dirUrl) ||
 | 
						|
        args.includes('--staging') ||
 | 
						|
        /DEV|STAG/i.test(env)
 | 
						|
    ) {
 | 
						|
        if (!stagingRe.test(dirUrl)) {
 | 
						|
            dirUrl = stagingUrl;
 | 
						|
        }
 | 
						|
        console.info('[staging] ACME Staging Directory URL:', dirUrl, env);
 | 
						|
        console.warn('FAKE CERTIFICATES (for testing) only', env, domain);
 | 
						|
        console.warn('');
 | 
						|
    }
 | 
						|
 | 
						|
    return dirUrl;
 | 
						|
};
 | 
						|
 | 
						|
DIR._shownDirectoryUrl = false;
 |