From e3a1292ead0fae92635f14b7d3bf00a29121766e Mon Sep 17 00:00:00 2001
From: Hj Ahmad Rasyid Hj Ismail <ahrasis@gmail.com>
Date: Sat, 26 May 2018 03:43:38 +0200
Subject: [PATCH] Update letsencrypt.inc.php as per the discussion at
 https://git.ispconfig.org/ispconfig/ispconfig3/issues/5030. Already pr'ed and
 merged in master via
 https://git.ispconfig.org/ispconfig/ispconfig3/merge_requests/778. Perhaps
 can be merged with stable too?

---
 server/lib/classes/letsencrypt.inc.php | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php
index 12e43a9d5b..4f681cc485 100644
--- a/server/lib/classes/letsencrypt.inc.php
+++ b/server/lib/classes/letsencrypt.inc.php
@@ -275,7 +275,16 @@ class letsencrypt {
 				$letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot'));
 				$letsencrypt = reset($letsencrypt);
 				if(is_executable($letsencrypt)) {
-					$letsencrypt_cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain $cli_domain_arg --webroot-path /usr/local/ispconfig/interface/acme";
+				    $letsencrypt_version = exec($letsencrypt . ' --version  2>&1', $ret, $val);
+                    if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $letsencrypt_version, $matches)) {
+                        $letsencrypt_version = $matches[2];
+                    }
+                    if ($letsencrypt_version >=0.22) {
+                        $acme_version = 'https://acme-v02.api.letsencrypt.org/directory';
+                    } else {
+                        $acme_version = 'https://acme-v01.api.letsencrypt.org/directory';
+                    }
+                    $letsencrypt_cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $cli_domain_arg --webroot-path /usr/local/ispconfig/interface/acme";
 					$success = $app->system->_exec($letsencrypt_cmd);
 				}
 			} else {
-- 
GitLab