diff --git a/security/acme-client/Makefile b/security/acme-client/Makefile
index 216a92e59..6f2df7bd3 100644
--- a/security/acme-client/Makefile
+++ b/security/acme-client/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= acme-client
-PLUGIN_VERSION= 3.17
+PLUGIN_VERSION= 3.18
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 931a9eb07..a2aafd3fb 100644
--- a/security/acme-client/pkg-descr
+++ b/security/acme-client/pkg-descr
@@ -8,6 +8,11 @@ WWW: https://github.com/acmesh-official/acme.sh
Plugin Changelog
================
+3.18
+
+Added:
+* add support for TrueNAS deployhook (#3421)
+
3.17
Added:
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 2059a2e67..906dd9cde 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
@@ -283,6 +283,29 @@
text
+
+
+ header
+
+
+
+ action.acme_truenas_apikey
+
+ text
+ API key generated in the TrueNAS web UI.
+
+
+ action.acme_truenas_hostname
+
+ text
+ Hostname or IP adress of TrueNAS Core Server.
+
+
+ action.acme_truenas_scheme
+
+ dropdown
+ Connection scheme that will be used when uploading certificates to TrueNAS Core Server.
+
header
diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAutomation/AcmeTruenas.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAutomation/AcmeTruenas.php
new file mode 100644
index 000000000..22cd3180b
--- /dev/null
+++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeAutomation/AcmeTruenas.php
@@ -0,0 +1,47 @@
+acme_env['DEPLOY_TRUENAS_APIKEY'] = (string)$this->config->acme_truenas_apikey;
+ $this->acme_env['DEPLOY_TRUENAS_HOSTNAME'] = (string)$this->config->acme_truenas_hostname;
+ $this->acme_env['DEPLOY_TRUENAS_SCHEME'] = (string)$this->config->acme_truenas_scheme;
+ $this->acme_args[] = '--deploy-hook truenas --insecure';
+ return 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 8aeea9d0b..1eca8d91b 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
@@ -1174,6 +1174,7 @@
Upload certificate to Palo Alto Networks Firewall
Upload certificate to HashiCorp Vault
Upload certificate to Synology DSM
+ Upload certificate to TrueNAS Core Server
Update local Unifi keystore
System or Plugin Command
@@ -1380,6 +1381,25 @@
/^.{1,1024}$/u
Should be a string between 1 and 1024 characters.
+
+ N
+ /^.{1,1024}$/u
+ Should be a string between 1 and 1024 characters.
+
+
+ localhost
+ N
+ /^.{1,1024}$/u
+ Should be a string between 1 and 1024 characters.
+
+
+ http
+ N
+
+ HTTP [default]
+ HTTPS
+
+
/usr/local/share/java/unifi/data/keystore
N