diff --git a/security/acme-client/Makefile b/security/acme-client/Makefile index e43cc7d26..86944b5d6 100644 --- a/security/acme-client/Makefile +++ b/security/acme-client/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= acme-client -PLUGIN_VERSION= 3.11 +PLUGIN_VERSION= 3.12 PLUGIN_COMMENT= ACME Client PLUGIN_MAINTAINER= opnsense@moov.de PLUGIN_DEPENDS= acme.sh py${PLUGIN_PYTHON}-dns-lexicon diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index 2ca43dc00..8dab89122 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -8,6 +8,21 @@ WWW: https://github.com/acmesh-official/acme.sh Plugin Changelog ================ +3.12 + +Added: +* add Simply.com DNS API (#2888) +* add Active24 challenge type (#3049) +* add support for Zone ID in Cloudflare challenge type (#2973) +* new automation: upload certificate to Vault (#2796) + +Fixed: +* Re-order function parameters due to PHP8 deprecation notice (#3043) + +Changed: +* simplyfi DNS service names +* relax port number restriction in SSH/SFTP automations (#3005) + 3.11 Fixed: diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAction.xml b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAction.xml index d3ecd4664..45544272c 100644 --- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAction.xml +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAction.xml @@ -274,4 +274,27 @@ text Path to the Unifi keystore file in the local filesystem, i.e. /usr/local/share/java/unifi/data/keystore. + + + header + + + + action.acme_vault_url + + text + URL of the Vault, i.e. http://vault.example.com:8200. + + + action.acme_vault_prefix + + text + This specifies the prefix path in Vault. + + + action.acme_vault_kvv2 + + checkbox + If checked version 2 of the kv store will be used, otherwise version 1. + 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/LeAutomation/AcmeVault.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAutomation/AcmeVault.php new file mode 100644 index 000000000..3eab03d75 --- /dev/null +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAutomation/AcmeVault.php @@ -0,0 +1,51 @@ +acme_env['VAULT_ADDR'] = (string)$this->config->acme_vault_url; + if (!empty((string)$this->config->acme_vault_prefix)) { + $this->acme_env['VAULT_PREFIX'] = (string)$this->config->acme_vault_prefix; + } + if ((string)$this->config->acme_vault_kvv2 == 1) { + $this->acme_env['VAULT_KV_V2'] = 1; + } + $this->acme_args[] = '--deploy-hook vault'; + return true; + } +} 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..9ed293b83 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 @@ -416,90 +416,90 @@ Y dns_freedns - 1984Hosting API - ACME DNS API - Acmeproxy API - Active24 API - Alwaysdata.com API - aliyun.com API - All-Inkl.com domain API - ArvanCloud API - AutoDNS (InterNetX) API + 1984Hosting + ACME DNS + Acmeproxy + Active24 + Alwaysdata.com + aliyun.com + All-Inkl.com + ArvanCloud + AutoDNS (InterNetX) AWS Route 53 - Azure DNS API - ClouDNS API - CloudFlare.com API - CloudXNS.com API - Core-Networks API - cPanel API - cyon.ch API - DDNSS API - deSEC.io API - DigitalOcean API - DirectAdmin API - DNSimple API - Domeneshop API - DNSMadeEasy.com API - DNSPod.cn API - Domain-Offensive LetsEncrypt API - Domain-Offensive Resellerinterface/Domainrobot API - DreamHost DNS API - DuckDNS API - Dyn Managed DNS API - Dynu API - dynv6 HTTP API + Azure DNS + ClouDNS + CloudFlare.com + CloudXNS.com + Core-Networks + cPanel + cyon.ch + DDNSS + deSEC.io + DigitalOcean + DirectAdmin + DNSimple + Domeneshop + DNSMadeEasy.com + DNSPod.cn + Domain-Offensive LetsEncrypt + Domain-Offensive Resellerinterface/Domainrobot + DreamHost + DuckDNS + Dyn Managed + Dynu + dynv6 EUserv - FreeDNS API - Gandi LiveDNS API - GoDaddy.com API - Google Cloud DNS API + FreeDNS + Gandi LiveDNS + GoDaddy.com + Google Cloud DNS GratisDNS.dk - Hetzner DNS API - hexonet.com DNS API - hosting.de API + Hetzner + hexonet.com + hosting.de Hurricane Electric - Infoblox API - Infomaniak API - INWX XMLRPC API - IONOS domain API - ISPConfig 3.1+ API - Joker API - KingHost DNS API - Knot (knsupdate) DNS API - LeaseWeb API - lexicon DNS API - Linode API (v3 / Deprecated) - Linode API (v4) - Loopia API - LuaDNS.com API - MailinaBox API - Name.com API - Namecheap API - Namesilo.com API - Nederhost API - netcup DNS API - Njalla API - NS1.com API + Infoblox + Infomaniak + INWX XMLRPC + IONOS domain + ISPConfig 3.1+ + Joker + KingHost + Knot (knsupdate) + LeaseWeb + lexicon + Linode (v3 / Deprecated) + Linode (v4) + Loopia + LuaDNS.com + MailinaBox + Name.com + Namecheap + Namesilo.com + Nederhost + netcup + Njalla + NS1.com nsupdate (RFC 2136) OPNsense BIND Plugin - OVH, kimsufi, soyoustart and runabove API - PowerDNS.com API - Plesk XML API - Porkbun API + OVH, kimsufi, soyoustart and runabove + PowerDNS.com + Plesk + Porkbun SchlundTech - selectel.com / selectel.ru domain API - Selfhost API - Servercow API v1 - Simply.com API - Transip API - UnoEuro API - Variomedia.de API - Vscale API - Vultr API - Yandex PDD API - Zilore DNS API - Zone.eu API - zonomi.com domain API + selectel.com / selectel.ru + Selfhost + Servercow + Simply.com + Transip + UnoEuro + Variomedia.de + Vscale + Vultr + Yandex PDD + Zilore + Zone.eu + zonomi.com @@ -560,6 +560,9 @@ N + + N + N @@ -722,67 +725,67 @@ N cloudflare - Aliyun.com API - AuroraDNS API + Aliyun.com + AuroraDNS Auto API - Azure DNS API - CloudFlare API - ClouDNS API - CloudXNS API - ConoHa API - Constellix API - DigitalOcean API - Dinahosting API - DirectAdmin API - DNSimple API - DnsMadeEasy API - DNSPark API - DNSPod API - Dreamhost API - EasyDNS API - Easyname API - ExoScale API - Gandi API - Gehirn API - Glesys API - GoDaddy API - Google Cloud DNS API - GratisDNS API - Hurricane Electric DNS API - Hetzner API - Hover API - Infoblox API - Internet.bs API - INWX API - Linode API - Linode v4 API - Localzone API - LuaDNS API - Memset API - Namecheap API - Namesilo API - Netcup API - NFSN API - NS1 API - OnApp API - Online API - OVH API - Plesk API - PointHQ API - PowerDNS API - Rackspace API - Rage4 API - Route 53 API - SafeDNS API - SakuraCloud API - Softlayer API - Subreg API - Transip API - Vultr API - Yandex API - Zeit API - Zilore API - Zonomi API + Azure + CloudFlare + ClouDNS + CloudXNS + ConoHa + Constellix + DigitalOcean + Dinahosting + DirectAdmin + DNSimple + DnsMadeEasy + DNSPark + DNSPod + Dreamhost + EasyDNS + Easyname + ExoScale + Gandi + Gehirn + Glesys + GoDaddy + Google Cloud + GratisDNS + Hurricane Electric + Hetzner + Hover + Infoblox + Internet.bs + INWX + Linode (v3 / Deprecated) + Linode (v4) + Localzone + LuaDNS + Memset + Namecheap + Namesilo + Netcup + NFSN + NS1 + OnApp + Online + OVH + Plesk + PointHQ + PowerDNS + Rackspace + Rage4 + Route 53 + SafeDNS + SakuraCloud + Softlayer + Subreg + Transip + Vultr + Yandex + Zeit + Zilore + Zonomi @@ -1126,6 +1129,7 @@ Upload certificate via SFTP Remote Command via SSH Upload certificate to FRITZ!Box router + Upload certificate to HashiCorp Vault Upload certificate to Synology DSM Update local Unifi keystore System or Plugin Command @@ -1156,9 +1160,9 @@ N 1 - 49151 + 65535 22 - Should be a valid port number between 1 and 49151. + Should be a valid port number between 1 and 65535. N @@ -1232,9 +1236,9 @@ N 1 - 49151 + 65535 22 - Should be a valid port number between 1 and 49151. + Should be a valid port number between 1 and 65535. N @@ -1322,6 +1326,20 @@ /usr/local/share/java/unifi/data/keystore N + + N + /^.{1,1024}$/u + Should be a string between 1 and 1024 characters. + + + acme + N + /^.{1,1024}$/u + Should be a string between 1 and 1024 characters. + + + 1 +