From b63119417fe6e4bbcd072108d7dec927ee879d4a Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Tue, 07 Jun 2016 12:47:22 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- server/lib/classes/cron.d/900-letsencrypt.inc.php | 24 +++++++++++++++++++++--- 1 files changed, 21 insertions(+), 3 deletions(-) diff --git a/server/lib/classes/cron.d/900-letsencrypt.inc.php b/server/lib/classes/cron.d/900-letsencrypt.inc.php index 7e1655e..5441ac2 100644 --- a/server/lib/classes/cron.d/900-letsencrypt.inc.php +++ b/server/lib/classes/cron.d/900-letsencrypt.inc.php @@ -36,10 +36,28 @@ public function onRunJob() { global $app, $conf; - $letsencrypt = array_shift( split("\n", `which letsencrypt /root/.local/share/letsencrypt/bin/letsencrypt`) ); + $letsencrypt = array_shift( explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt')) ); if(is_executable($letsencrypt)) { - exec($letsencrypt . ' -n renew'); - $app->services->restartServiceDelayed('httpd', 'reload'); + $version = trim(exec($letsencrypt . ' --version 2>/dev/null')); + if(preg_match('/^(\S+)\s+(\d+(\.\d+)+)$/', $version, $matches)) { + $type = strtolower($matches[1]); + $version = $matches[2]; + if(($type != 'letsencrypt' && $type != 'certbot') || version_compare($version, '0.7.0', '<')) { + exec($letsencrypt . ' -n renew'); + $app->services->restartServiceDelayed('httpd', 'reload'); + } else { + $marker_file = '/usr/local/ispconfig/server/le.restart'; + $cmd = "echo '1' > " . $marker_file; + exec($letsencrypt . ' -n renew --post-hook ' . escapeshellarg($cmd)); + if(file_exists($marker_file) && trim(file_get_contents($marker_file)) == '1') { + unlink($marker_file); + $app->services->restartServiceDelayed('httpd', 'reload'); + } + } + } else { + exec($letsencrypt . ' -n renew'); + $app->services->restartServiceDelayed('httpd', 'reload'); + } } parent::onRunJob(); -- Gitblit v1.9.1