Skip to content

Commit b115572

Browse files
author
Marius Burkard
committed
- only restart web server if cert was renewed
1 parent 2797246 commit b115572

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

server/lib/classes/cron.d/900-letsencrypt.inc.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,26 @@ public function onRunJob() {
3838

3939
$letsencrypt = array_shift( explode("\n", `which letsencrypt /root/.local/share/letsencrypt/bin/letsencrypt`) );
4040
if(is_executable($letsencrypt)) {
41-
exec($letsencrypt . ' -n renew');
42-
$app->services->restartServiceDelayed('httpd', 'reload');
41+
$version = trim(exec($letsencrypt . ' --version 2>/dev/null'));
42+
if(preg_match('/^(\S+)\s+(\d+(\.\d+)+)$/', $version, $matches)) {
43+
$type = strtolower($matches[1]);
44+
$version = $matches[2];
45+
if($type != 'letsencrypt' || version_compare($version, '0.7.0', '<')) {
46+
exec($letsencrypt . ' -n renew');
47+
$app->services->restartServiceDelayed('httpd', 'reload');
48+
} else {
49+
$marker_file = '/usr/local/ispconfig/server/le.restart';
50+
$cmd = "echo '1' > " . $marker_file;
51+
exec($letsencrypt . ' -n renew --post-hook ' . escapeshellarg($cmd));
52+
if(file_exists($marker_file) && trim(file_get_contents($marker_file)) == '1') {
53+
unlink($marker_file);
54+
$app->services->restartServiceDelayed('httpd', 'reload');
55+
}
56+
}
57+
} else {
58+
exec($letsencrypt . ' -n renew');
59+
$app->services->restartServiceDelayed('httpd', 'reload');
60+
}
4361
}
4462

4563
parent::onRunJob();

0 commit comments

Comments
 (0)