From be91a7e0136623200a8d249fcbc0ec6203789dcb Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Sat, 29 Dec 2018 23:52:57 -0800 Subject: [PATCH] More changes due to certbot update --- .../built/user/system/CertbotManager.js | 105 +++---------- .../built/user/system/CertbotManager.js.map | 2 +- app-backend/src/user/system/CertbotManager.ts | 146 ++++-------------- 3 files changed, 58 insertions(+), 195 deletions(-) diff --git a/app-backend/built/user/system/CertbotManager.js b/app-backend/built/user/system/CertbotManager.js index 3e02f25..68b9b91 100644 --- a/app-backend/built/user/system/CertbotManager.js +++ b/app-backend/built/user/system/CertbotManager.js @@ -73,91 +73,32 @@ class CertbotManager { const self = this; return Promise.resolve() .then(function () { - const rootPathDir = CaptainConstants.letsEncryptEtcPath + - '/accounts/acme-' + - (shouldUseStaging ? 'staging' : 'v01') + - '.api.letsencrypt.org/directory'; - if (!fs.existsSync(rootPathDir)) { - Logger.d('Fresh install of Certbot. There is no registration directory'); - return undefined; + // Creds used to be saved at + // /etc/letencrypt/accounts/acme-v01.api.letsencrypt.org/directory/9fc95dbca2f0b877 + // After moving to 0.29.1, Certbot started using v2 API. and this path is no longer valid. + // Instead, they use v02 path. However, old installations who registered with v1, will remain in the same directory + const cmd = [ + 'certbot', + 'register', + '--email', + emailAddress, + '--agree-tos', + '--no-eff-email', + ]; + if (shouldUseStaging) { + cmd.push('--staging'); } - const files = fs.readdirSync(rootPathDir); - if (files.length === 0) { - Logger.d('Fresh install of Certbot. There is nothing in the registration directory'); - return undefined; - } - if (files.length !== 1) { - throw new Error('I do not know know what to do when there are multiple directories in ' + - rootPathDir); - } - const regFilePath = rootPathDir + '/' + files[0] + '/regr.json'; - if (!fs.existsSync(regFilePath)) { - throw new Error('ACME Reg directory exists, but there is no file! ' + - regFilePath); - } - return fs.readJson(regFilePath); + return self.runCommand(cmd); }) - .then(function (regrContent) { - if (!regrContent) { - const cmd = [ - 'certbot', - 'register', - '--email', - emailAddress, - '--agree-tos', - '--no-eff-email', - ]; - if (shouldUseStaging) { - cmd.push('--staging'); - } - return self.runCommand(cmd).then(function (registerOutput) { - if (registerOutput.indexOf('Your account credentials have been saved in your Certbot') >= 0) { - return true; - } - throw new Error('Unexpected output when registering with ACME Certbot \n' + - registerOutput); - }); + .then(function (registerOutput) { + if (registerOutput.indexOf('Your account credentials have been saved in your Certbot') >= 0) { + return true; } - else { - /* - - /etc/letsencrypt/accounts/acme-v01.api.letsencrypt.org/directory/864339b5816d33d67743 # cat regr.json - - { - "body":{ - "contact":[ - "mailto:testemail@gmail.com" - ], - "agreement":"https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf", - "key":{ - "e":"AQAB", - "kty":"RSA", - "n":"1l-5ihAl0BFSiS3Pl3LjQ" - } - }, - "uri":"https://acme-v01.api.letsencrypt.org/acme/reg/0421", - "new_authzr_uri":"https://acme-v01.api.letsencrypt.org/acme/new-authz", - "terms_of_service":"https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf" - } - - */ - let contact = undefined; - if (regrContent && - regrContent.body && - regrContent.body.contact && - Array.isArray(regrContent.body.contact)) { - contact = regrContent.body.contact; - for (let idx = 0; idx < contact.length; idx++) { - if (contact[idx] === 'mailto:' + emailAddress) { - return true; - } - } - } - throw new Error('Previously registered with a different address: ' + - contact - ? JSON.stringify(contact) - : 'NULL'); + if (registerOutput.indexOf('There is an existing account') >= 0) { + return true; } + throw new Error('Unexpected output when registering with ACME Certbot \n' + + registerOutput); }); } /* @@ -220,7 +161,7 @@ class CertbotManager { const self = this; return Promise.resolve().then(function () { const nonInterActiveCommand = [...cmd, '--non-interactive']; - return dockerApi.executeCommand(CaptainConstants.certbotServiceName, cmd); + return dockerApi.executeCommand(CaptainConstants.certbotServiceName, nonInterActiveCommand); }); } ensureDomainHasDirectory(domainName) { diff --git a/app-backend/built/user/system/CertbotManager.js.map b/app-backend/built/user/system/CertbotManager.js.map index caeba91..2b67cd1 100644 --- a/app-backend/built/user/system/CertbotManager.js.map +++ b/app-backend/built/user/system/CertbotManager.js.map @@ -1 +1 @@ -{"version":3,"file":"CertbotManager.js","sourceRoot":"","sources":["../../../src/user/system/CertbotManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CertbotManager.js","sourceRoot":"","sources":["../../../src/user/system/CertbotManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/src/user/system/CertbotManager.ts b/app-backend/src/user/system/CertbotManager.ts index 878e5fe..d93ed90 100644 --- a/app-backend/src/user/system/CertbotManager.ts +++ b/app-backend/src/user/system/CertbotManager.ts @@ -107,122 +107,44 @@ class CertbotManager { return Promise.resolve() .then(function() { - const rootPathDir = - CaptainConstants.letsEncryptEtcPath + - '/accounts/acme-' + - (shouldUseStaging ? 'staging' : 'v01') + - '.api.letsencrypt.org/directory' + // Creds used to be saved at + // /etc/letencrypt/accounts/acme-v01.api.letsencrypt.org/directory/9fc95dbca2f0b877 + // After moving to 0.29.1, Certbot started using v2 API. and this path is no longer valid. + // Instead, they use v02 path. However, old installations who registered with v1, will remain in the same directory + const cmd = [ + 'certbot', + 'register', + '--email', + emailAddress, + '--agree-tos', + '--no-eff-email', + ] - if (!fs.existsSync(rootPathDir)) { - Logger.d( - 'Fresh install of Certbot. There is no registration directory' - ) - return undefined + if (shouldUseStaging) { + cmd.push('--staging') } - const files = fs.readdirSync(rootPathDir) - - if (files.length === 0) { - Logger.d( - 'Fresh install of Certbot. There is nothing in the registration directory' - ) - return undefined - } - - if (files.length !== 1) { - throw new Error( - 'I do not know know what to do when there are multiple directories in ' + - rootPathDir - ) - } - - const regFilePath = rootPathDir + '/' + files[0] + '/regr.json' - - if (!fs.existsSync(regFilePath)) { - throw new Error( - 'ACME Reg directory exists, but there is no file! ' + - regFilePath - ) - } - - return fs.readJson(regFilePath) + return self.runCommand(cmd) }) - .then(function(regrContent) { - if (!regrContent) { - const cmd = [ - 'certbot', - 'register', - '--email', - emailAddress, - '--agree-tos', - '--no-eff-email', - ] - - if (shouldUseStaging) { - cmd.push('--staging') - } - - return self.runCommand(cmd).then(function(registerOutput) { - if ( - registerOutput.indexOf( - 'Your account credentials have been saved in your Certbot' - ) >= 0 - ) { - return true - } - - throw new Error( - 'Unexpected output when registering with ACME Certbot \n' + - registerOutput - ) - }) - } else { - /* - - /etc/letsencrypt/accounts/acme-v01.api.letsencrypt.org/directory/864339b5816d33d67743 # cat regr.json - - { - "body":{ - "contact":[ - "mailto:testemail@gmail.com" - ], - "agreement":"https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf", - "key":{ - "e":"AQAB", - "kty":"RSA", - "n":"1l-5ihAl0BFSiS3Pl3LjQ" - } - }, - "uri":"https://acme-v01.api.letsencrypt.org/acme/reg/0421", - "new_authzr_uri":"https://acme-v01.api.letsencrypt.org/acme/new-authz", - "terms_of_service":"https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf" - } - - */ - - let contact = undefined - - if ( - regrContent && - regrContent.body && - regrContent.body.contact && - Array.isArray(regrContent.body.contact) - ) { - contact = regrContent.body.contact - for (let idx = 0; idx < contact.length; idx++) { - if (contact[idx] === 'mailto:' + emailAddress) { - return true - } - } - } - - throw new Error( - 'Previously registered with a different address: ' + - contact - ? JSON.stringify(contact) - : 'NULL' - ) + .then(function(registerOutput) { + if ( + registerOutput.indexOf( + 'Your account credentials have been saved in your Certbot' + ) >= 0 + ) { + return true } + + if ( + registerOutput.indexOf('There is an existing account') >= 0 + ) { + return true + } + + throw new Error( + 'Unexpected output when registering with ACME Certbot \n' + + registerOutput + ) }) } @@ -294,7 +216,7 @@ class CertbotManager { const nonInterActiveCommand = [...cmd, '--non-interactive'] return dockerApi.executeCommand( CaptainConstants.certbotServiceName, - cmd + nonInterActiveCommand ) }) }