From 6d5604e4060eb59dc906747ccc60c1ad39d4758c Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Wed, 27 Jul 2022 15:52:59 +0200 Subject: [PATCH] security/acme-client: add support for Cloudflare Zone ID, closes #2973 --- security/acme-client/pkg-descr | 1 + .../OPNsense/AcmeClient/forms/dialogValidation.xml | 6 ++++++ .../app/library/OPNsense/AcmeClient/LeValidation/DnsCf.php | 4 ++++ .../mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml | 3 +++ 4 files changed, 14 insertions(+) diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index 5fd3b9223..40cb4205c 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -13,6 +13,7 @@ Plugin Changelog Added: * Add Simply.com DNS API (#2888) * Add Active24 challenge type (#3049) +* Add support for Zone ID in Cloudflare challenge type (#2973) Fixed: * Re-order function parameters due to PHP8 deprecation notice (#3043) diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml index ee96f9000..0d6d449c5 100644 --- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogValidation.xml @@ -263,6 +263,12 @@ password The token needs "Read" access to Zone.Zone and "Edit" access to Zone.DNS across all zones from an account. + + validation.dns_cf_zone_id + + text + Note that specifying a Zone ID will limit this configuration to a single domain. + header diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/DnsCf.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/DnsCf.php index 3f6f735e0..107a09f6e 100644 --- a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/DnsCf.php +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/DnsCf.php @@ -45,5 +45,9 @@ class DnsCf extends Base implements LeValidationInterface // Restricted API token (recommended) $this->acme_env['CF_Token'] = (string)$this->config->dns_cf_token; $this->acme_env['CF_Account_ID'] = (string)$this->config->dns_cf_account_id; + // Optional Zone ID + if (!empty((string)$this->config->dns_cf_zone_id)) { + $this->acme_env['CF_Zone_ID'] = (string)$this->config->dns_cf_zone_id; + } } } diff --git a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml index 4b01dfa58..19e5cd911 100644 --- a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml +++ b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/AcmeClient.xml @@ -560,6 +560,9 @@ N + + N + N