diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index edb548f03..3dfdcafae 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -14,6 +14,7 @@ Added: * add support for new ACME CA's: buypass, buypass_test, sslcom, zerossl (#2361) * add introduction pages and an option to hide them * add tooltips for account command buttons (#2188) +* add support for custom ACME EAB kid/hmac when registering accounts Changed: * rename plugin from "Let's Encrypt client" to "ACME Client" (#2361) diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAccount.xml b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAccount.xml index b8a2e2ebb..246f279df 100644 --- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAccount.xml +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/dialogAccount.xml @@ -23,4 +23,20 @@ text Optional e-mail address for this account. + + + header + + + account.eab_kid + + text + + + + account.eab_hmac + + password + + diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/settings.xml b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/settings.xml index 770341a2c..e3b64b0ad 100644 --- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/settings.xml +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/forms/settings.xml @@ -15,7 +15,7 @@ acmeclient.settings.ca dropdown - acme.sh documentation for a list of supported CAs.]]> + acme.sh documentation for a list of supported CAs.]]> acmeclient.settings.haproxyIntegration diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAccount.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAccount.php index afec980fd..57589b7c5 100644 --- a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAccount.php +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAccount.php @@ -212,6 +212,13 @@ class LeAccount extends LeCommon if (!($this->isRegistered())) { LeUtils::log_debug('starting account registration for ' . (string)$this->config->name, $this->debug); + // Check if ACME External Account Binding (EAB) is enabled + if (!empty((string)$this->config->eab_kid) && !empty((string)$this->config->eab_hmac) { + LeUtils::log_debug('enabling ACME EAB for this account', $this->debug); + $this->acme_args[] = LeUtils::execSafe('--eab-kid %s', $this->config->eab_kid); + $this->acme_args[] = LeUtils::execSafe('--eab-hmac-key %s', $this->config->eab_hmac); + } + // Preparation to run acme client $proc_env = $this->acme_env; // env variables for proc_open() $proc_env['PATH'] = $this::ACME_ENV_PATH; 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 91183a3ea..5e0a936f6 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 @@ -148,6 +148,16 @@ N + + N + /^.{1,8192}$/u + Should be a string between 1 and 8192 characters. + + + N + /^.{1,8192}$/u + Should be a string between 1 and 8192 characters. + N