mirror of
https://github.com/caprover/caprover
synced 2026-10-19 03:19:15 +00:00
More changes due to certbot update
This commit is contained in:
1 parent
cc0bbad2b0
commit
be91a7e013
3 files changed
+58
-195
No files matched your search
@@ -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) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"CertbotManager.js","sourceRoot":"","sources":["../../../src/user/system/CertbotManager.ts"],"names":[],"mappings":"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 truncated
|
||||
{"version":3,"file":"CertbotManager.js","sourceRoot":"","sources":["../../../src/user/system/CertbotManager.ts"],"names":[],"mappings":"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 truncated
|
||||
@@ -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
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user