Marius Burkard
2016-05-31 b11557203e368d036e42fdf681a20b86eb98ccfe
- only restart web server if cert was renewed
1 files modified
22 ■■■■■ changed files
server/lib/classes/cron.d/900-letsencrypt.inc.php 22 ●●●●● patch | view | raw | blame | history
server/lib/classes/cron.d/900-letsencrypt.inc.php
@@ -38,8 +38,26 @@
        $letsencrypt = array_shift( explode("\n", `which letsencrypt /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' || 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();