diff --git a/security/acme-client/Makefile b/security/acme-client/Makefile
index b7b4b5cf0..32c1cd94f 100644
--- a/security/acme-client/Makefile
+++ b/security/acme-client/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= acme-client
-PLUGIN_VERSION= 1.30
+PLUGIN_VERSION= 1.31
PLUGIN_COMMENT= Let's Encrypt client
PLUGIN_MAINTAINER= opnsense@moov.de
PLUGIN_DEPENDS= acme.sh py${PLUGIN_PYTHON}-dns-lexicon
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 b0f82aada..3b2f618ef 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
@@ -1019,4 +1019,44 @@
password
You need to obtain your API key from variomedia's customer support.
+
+
+ header
+
+
+
+ validation.dns_schlundtech_user
+
+ text
+
+
+ validation.dns_schlundtech_password
+
+ password
+
+
+
+ header
+
+
+
+ validation.dns_euserv_user
+
+ text
+
+
+ validation.dns_euserv_password
+
+ password
+
+
+
+ header
+
+
+
+ validation.dns_leaseweb_key
+
+ password
+
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 052bdd530..3ac271910 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
@@ -378,6 +378,7 @@
DuckDNS API
Dyn Managed DNS API
Dynu API
+ EUserv
FreeDNS API
Gandi LiveDNS API
GoDaddy.com API
@@ -390,6 +391,7 @@
ISPConfig 3.1+ API
KingHost DNS API
Knot (knsupdate) DNS API
+ LeaseWeb API
lexicon DNS API
Linode API
Loopia API
@@ -405,6 +407,7 @@
OVH, kimsufi, soyoustart and runabove API
PowerDNS.com API
Plesk XML API
+ SchlundTech
selectel.com / selectel.ru domain API
Servercow API v1
UnoEuro API
@@ -827,26 +830,41 @@
N
- N
+ N
- N
+ N
- N
+ N
- N
+ N
- N
+ N
- N
+ N
- N
+ N
+
+ N
+
+
+ N
+
+
+ N
+
+
+ N
+
+
+ N
+
diff --git a/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php b/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php
index 9101fd639..f9a648ee5 100755
--- a/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php
+++ b/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php
@@ -732,6 +732,10 @@ function run_acme_validation($certObj, $valObj, $acctObj)
$proc_env['Dynu_ClientId'] = (string)$valObj->dns_dynu_clientid;
$proc_env['Dynu_Secret'] = (string)$valObj->dns_dynu_secret;
break;
+ case 'dns_euserv':
+ $proc_env['EUSERV_Username'] = (string)$valObj->dns_euserv_user;
+ $proc_env['EUSERV_Password'] = (string)$valObj->dns_euserv_password;
+ break;
case 'dns_freedns':
$proc_env['FREEDNS_User'] = (string)$valObj->dns_freedns_user;
$proc_env['FREEDNS_Password'] = (string)$valObj->dns_freedns_password;
@@ -813,6 +817,9 @@ function run_acme_validation($certObj, $valObj, $acctObj)
$proc_env['KNOT_SERVER'] = (string)$valObj->dns_knot_server;
$proc_env['KNOT_KEY'] = (string)$valObj->dns_knot_key;
break;
+ case 'dns_leaseweb':
+ $proc_env['LSW_Key'] = (string)$valObj->dns_leaseweb_key;
+ break;
case 'dns_lexicon':
$proc_env['PROVIDER'] = (string)$valObj->dns_lexicon_provider;
$proc_env['LEXICON_' . strtoupper($proc_env['PROVIDER']) . '_USERNAME'] = (string)$valObj->dns_lexicon_user;
@@ -909,6 +916,10 @@ function run_acme_validation($certObj, $valObj, $acctObj)
$proc_env['pleskxml_pass'] = (string)$valObj->dns_pleskxml_pass;
$proc_env['pleskxml_uri'] = (string)$valObj->dns_pleskxml_uri;
break;
+ case 'dns_schlundtech':
+ $proc_env['SCHLUNDTECH_USER'] = (string)$valObj->dns_schlundtech_user;
+ $proc_env['SCHLUNDTECH_PASSWORD'] = (string)$valObj->dns_schlundtech_password;
+ break;
case 'dns_selectel':
$proc_env['SL_Key'] = (string)$valObj->dns_sl_key;
break;