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 65afd3a4f..8f5debb9d 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
@@ -30,4 +30,11 @@
true
+
+ acmeclient.settings.restartTimeout
+
+ text
+
+ true
+
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 5edec0877..65e463196 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
@@ -43,6 +43,12 @@
65535
Y
+
+ 600
+ 10
+ 86400
+ Y
+
0
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 324b8f9b4..c1fbd1767 100755
--- a/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php
+++ b/security/acme-client/src/opnsense/scripts/OPNsense/AcmeClient/certhelper.php
@@ -957,6 +957,7 @@ function run_restart_actions($certlist, $modelObj)
{
global $config;
$return = 0;
+ $configObj = Config::getInstance()->object();
// NOTE: Do NOT run any restart action twice, collect duplicates first.
$restart_actions = array();
@@ -1041,8 +1042,12 @@ function run_restart_actions($certlist, $modelObj)
$proc_stderr = '';
$result = ''; // exit code (or '99' in case of timeout)
- // TODO: Make the timeout configurable.
- $timeout = '600';
+ // Timeout for custom restart actions.
+ if (!empty((string)$configObj->OPNsense->AcmeClient->settings->restartTimeout)) {
+ $timeout = (string)$configObj->OPNsense->AcmeClient->settings->restartTimeout;
+ } else {
+ $timeout = '600';
+ }
$starttime = time();
$proc_cmd = (string)$action->custom;