diff --git a/actions/admin/settings/131.ssl.php b/actions/admin/settings/131.ssl.php index cbf4c0a4..cfdfbb48 100644 --- a/actions/admin/settings/131.ssl.php +++ b/actions/admin/settings/131.ssl.php @@ -168,6 +168,7 @@ return array( 'option_options' => array( 'letsencrypt_test' => 'Let\'s Encrypt (Test / Staging)', 'letsencrypt' => 'Let\'s Encrypt (Live)', + 'buypass_test' => 'Buypass (Test / Staging)', 'buypass' => 'Buypass (Live)', 'zerossl' => 'ZeroSSL (Live)' ), diff --git a/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php b/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php index d309310b..858b3f29 100644 --- a/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php +++ b/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php @@ -32,6 +32,7 @@ class AcmeSh extends \Froxlor\Cron\FroxlorCron 'letsencrypt' => "https://acme-v02.api.letsencrypt.org/directory", 'letsencrypt_test' => "https://acme-staging-v02.api.letsencrypt.org/directory", 'buypass' => "https://api.buypass.com/acme/directory", + 'buypass_test' => "https://api.test4.buypass.no/acme/directory", 'zerossl' => "https://acme.zerossl.com/v2/DV90" ]; diff --git a/lib/Froxlor/Dns/Dns.php b/lib/Froxlor/Dns/Dns.php index d18d1ff5..1ff28999 100644 --- a/lib/Froxlor/Dns/Dns.php +++ b/lib/Froxlor/Dns/Dns.php @@ -338,11 +338,28 @@ class Dns foreach ($records as $record) { if ($record == '@CAA@') { $caa_entries = explode(PHP_EOL, Settings::Get('caa.caa_entry')); - if ($domain['letsencrypt'] == 1) { - $le_entry = $domain['iswildcarddomain'] == '1' ? '0 issuewild "letsencrypt.org"' : '0 issue "letsencrypt.org"'; - array_push($caa_entries, $le_entry); + $caa_domain = "letsencrypt.org"; + if (Settings::Get('system.letsencryptca') == 'buypass' || Settings::Get('system.letsencryptca') == 'buypass_test') { + $caa_domain = "buypass.com"; + } + if ($domain['letsencrypt'] == 1) { + if (Settings::Get('system.letsencryptca') == 'zerossl') { + $caa_domains = [ + "sectigo.com", + "trust-provider.com", + "usertrust.com", + "comodoca.com", + "comodo.com" + ]; + foreach ($caa_domains as $caa_domain) { + $le_entry = $domain['iswildcarddomain'] == '1' ? '0 issuewild "' . $caa_domain . '"' : '0 issue "' . $caa_domain . '"'; + array_push($caa_entries, $le_entry); + } + } else { + $le_entry = $domain['iswildcarddomain'] == '1' ? '0 issuewild "' . $caa_domain . '"' : '0 issue "' . $caa_domain . '"'; + array_push($caa_entries, $le_entry); + } } - foreach ($caa_entries as $entry) { if (empty($entry)) continue; $zonerecords[] = new DnsEntry('@', 'CAA', $entry);