$domain = new Domain($domain, $account);
if (!$domain->existsInStorage('config.json')) {
$log->log('Skipped domain ' . $domain->getDomain());
continue;
}
$log->log('Processing domain ' . $domain->getDomain());
// Check if a renew is required, if everything needs to be checked within 10 days or in the past
if (strtotime($domain->config('expire')) - time() >= 10 * 86400) {
$log->log('Domain ' . $domain->getDomain() . ' doesn\'t need a reissue');
continue;
}
try {
$challenges = new Challenges($domain);
$challenges->solveChallenge();
$log->log('Successfully completed challenge for ' . $domain->getDomain());
$domain->createKeys();
$domain->requestCertificate(null, $domain->config('subdomains'));
$log->log('Successfully received certificate from Let\'s Encrypt');
$domain->applyCertificates();
$log->log('Successfully applied certificate and CA certificates to DirectAdmin');
$domain->config('domain', $domain->getDomain());
$domain->config('subdomains', $domain->getSubdomains());
$domain->config('status', 'applied to DirectAdmin (renewed)');
$domain->config('expire', date('Y-m-d', strtotime('+50 days')));
$log->log('Reissued domain ' . $domain->getDomain() . ' with success.');
} catch (\Exception $e) {
$log->error($e->getMessage(), null, false);
}
}
}
// Rewrite and restart HTTPD files