From 32ec0505afae781a44466621ebbd8e83cf68fdb8 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 12 Aug 2025 14:52:40 +0200 Subject: [webinterface] Add support for HARICA and custom URLs --- modules-available/webinterface/page.inc.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'modules-available/webinterface/page.inc.php') diff --git a/modules-available/webinterface/page.inc.php b/modules-available/webinterface/page.inc.php index fb982616..880a67b8 100644 --- a/modules-available/webinterface/page.inc.php +++ b/modules-available/webinterface/page.inc.php @@ -153,6 +153,7 @@ class Page_WebInterface extends Page $data['acmeMail'] = Acme::getMail(); $data['acmeDomains'] = $domains; if (User::hasPermission("edit.https")) { + $data['acmeServerUrl'] = Acme::getServerUrl(); $data['acmeKeyId'] = Acme::getKeyId(); $data['acmeHmacKey'] = Acme::getHmacKey(); $data['httpsApiKey'] = WebInterface::getApiKey(); @@ -246,6 +247,7 @@ class Page_WebInterface extends Page $wipeAll = Request::post('acme-wipe-all', false, 'bool'); // Get params $provider = Request::post('acme-provider', Request::REQUIRED, 'string'); + $serverUrl = Request::post('acme-server-url', null, 'string'); $mail = Request::post('acme-mail', Request::REQUIRED, 'string'); $domains = Request::post('acme-domains', Request::REQUIRED, 'string'); $kid = Request::post('acme-kid', null, 'string'); @@ -265,6 +267,7 @@ class Page_WebInterface extends Page // First, try to revive existing config/certs if parameters didn't change if (!$wipeAll && $provider === Acme::getProvider() + && ($provider !== 'custom' || $serverUrl === Acme::getServerUrl()) && $mail === Acme::getMail() && $kid === Acme::getKeyId() && $hmac === Acme::getHmacKey() @@ -274,7 +277,7 @@ class Page_WebInterface extends Page return null; // Nothing to do, old setup works return Acme::renew(); // Hope for the best, otherwise user needs to check "force reissue" } - if (!Acme::setConfig($provider, $mail, $kid, $hmac)) + if (!Acme::setConfig($provider, $mail, $serverUrl, $kid, $hmac)) return null; // Will generate error messages in this case Acme::setDomains($domains); return Acme::issueNewCertificate($wipeAll); -- cgit v1.2.3-55-g7522