fix dhparam generation
it cannot be created in default config creation time since it is already run pre-VM snapshot time
This commit is contained in:
+12
-1
@@ -10,7 +10,6 @@ exports = module.exports = {
|
||||
const assert = require('assert'),
|
||||
backups = require('./backups.js'),
|
||||
backuptask = require('./backuptask.js'),
|
||||
blobs = require('./blobs.js'),
|
||||
BoxError = require('./boxerror.js'),
|
||||
branding = require('./branding.js'),
|
||||
constants = require('./constants.js'),
|
||||
@@ -18,6 +17,7 @@ const assert = require('assert'),
|
||||
debug = require('debug')('box:provision'),
|
||||
domains = require('./domains.js'),
|
||||
eventlog = require('./eventlog.js'),
|
||||
fs = require('fs'),
|
||||
mail = require('./mail.js'),
|
||||
mounts = require('./mounts.js'),
|
||||
reverseProxy = require('./reverseproxy.js'),
|
||||
@@ -25,6 +25,7 @@ const assert = require('assert'),
|
||||
semver = require('semver'),
|
||||
settings = require('./settings.js'),
|
||||
sysinfo = require('./sysinfo.js'),
|
||||
paths = require('./paths.js'),
|
||||
users = require('./users.js'),
|
||||
tld = require('tldjs'),
|
||||
tokens = require('./tokens.js'),
|
||||
@@ -50,6 +51,14 @@ function setProgress(task, message, callback) {
|
||||
if (callback) callback();
|
||||
}
|
||||
|
||||
async function ensureDhparams() {
|
||||
if (fs.existsSync(paths.DHPARAMS_FILE)) return;
|
||||
debug('ensureDhparams: generating dhparams');
|
||||
const dhparams = safe.child_process.execSync('openssl dhparam -dsaparam 2048');
|
||||
if (!dhparams) throw new BoxError(BoxError.OPENSSL_ERROR, safe.error);
|
||||
if (!safe.fs.writeFileSync(paths.DHPARAMS_FILE, dhparams)) throw new BoxError(BoxError.FS_ERROR, `Could not save dhparams.pem: ${safe.error.message}`);
|
||||
}
|
||||
|
||||
async function unprovision() {
|
||||
// TODO: also cancel any existing configureWebadmin task
|
||||
await settings.setDashboardLocation('', '');
|
||||
@@ -63,6 +72,7 @@ async function setupTask(domain, auditSource) {
|
||||
|
||||
try {
|
||||
await cloudron.setupDnsAndCert(constants.DASHBOARD_LOCATION, domain, auditSource, (progress) => setProgress('setup', progress.message));
|
||||
await ensureDhparams();
|
||||
await cloudron.setDashboardDomain(domain, auditSource);
|
||||
setProgress('setup', 'Done'),
|
||||
await eventlog.add(eventlog.ACTION_PROVISION, auditSource, {});
|
||||
@@ -160,6 +170,7 @@ async function restoreTask(backupConfig, backupId, sysinfoConfig, options, audit
|
||||
const mailRestoreConfig = { backupConfig, backupId: mailBackups[0].id, backupFormat: mailBackups[0].format };
|
||||
await backuptask.downloadMail(mailRestoreConfig, (progress) => setProgress('restore', progress.message));
|
||||
|
||||
await ensureDhparams();
|
||||
await settings.setSysinfoConfig(sysinfoConfig);
|
||||
await reverseProxy.restoreFallbackCertificates();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user