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;
|