diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr
index 724aae3e7c..832ae46aba 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.2
+
+Added:
+* add button to (re-) import a certificate into the trust storage
+
3.1
Changed:
diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/Api/CertificatesController.php b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/Api/CertificatesController.php
index 5a56a56a09..e72baa6307 100644
--- a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/Api/CertificatesController.php
+++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/Api/CertificatesController.php
@@ -172,4 +172,23 @@ public function automationAction($uuid)
}
return $result;
}
+
+ /**
+ * (re-) import the certificate by uuid
+ * @param $uuid item unique id
+ * @return array status
+ */
+ public function importAction($uuid)
+ {
+ $result = array("result" => "failed");
+ $mdlAcme = new AcmeClient();
+ if ($uuid != null) {
+ $node = $mdlAcme->getNodeByReference('certificates.certificate.' . $uuid);
+ if ($node != null) {
+ $backend = new Backend();
+ $response = $backend->configdRun("acmeclient import ${uuid}");
+ }
+ }
+ return $result;
+ }
}
diff --git a/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt
index 334e7914be..f74432af69 100644
--- a/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt
+++ b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt
@@ -49,6 +49,7 @@ POSSIBILITY OF SUCH DAMAGE.
revoke:'/api/acmeclient/certificates/revoke/',
removekey:'/api/acmeclient/certificates/removekey/',
automation:'/api/acmeclient/certificates/automation/',
+ import:'/api/acmeclient/certificates/import/',
};
var gridopt = {
@@ -62,6 +63,7 @@ POSSIBILITY OF SUCH DAMAGE.
return " " +
"" +
"" +
+ "" +
"" +
"" +
"" +
@@ -397,6 +399,25 @@ POSSIBILITY OF SUCH DAMAGE.
}
});
+ // import certificate into trust storage
+ grid_certificates.find(".command-import").on("click", function(e)
+ {
+ if (gridParams['import'] != undefined) {
+ var uuid=$(this).data("row-id");
+ stdDialogConfirm('{{ lang._('Confirmation Required') }}',
+ '{{ lang._('(Re-) import the selected certificate into the trust storage?') }}',
+ '{{ lang._('Yes') }}', '{{ lang._('Cancel') }}', function() {
+ ajaxCall(url=gridParams['import'] + uuid,
+ sendData={},callback=function(data,status){
+ // reload grid after sign
+ $("#"+gridId).bootgrid("reload");
+ });
+ });
+ } else {
+ console.log("[grid] action import missing")
+ }
+ });
+
});
// Hide options that are irrelevant in this context.
diff --git a/security/acme-client/src/opnsense/service/conf/actions.d/actions_acmeclient.conf b/security/acme-client/src/opnsense/service/conf/actions.d/actions_acmeclient.conf
index 8f379a6da7..7af68eaa45 100644
--- a/security/acme-client/src/opnsense/service/conf/actions.d/actions_acmeclient.conf
+++ b/security/acme-client/src/opnsense/service/conf/actions.d/actions_acmeclient.conf
@@ -77,6 +77,12 @@ parameters:%s
type:script
message:running automations for a certificate
+[import]
+command:/usr/local/opnsense/scripts/OPNsense/AcmeClient/setup.sh; /usr/sbin/daemon -f /usr/local/opnsense/scripts/OPNsense/AcmeClient/lecert.php --mode import --cert
+parameters:%s
+type:script
+message:running import for a certificate
+
[cron-auto-renew]
command:/usr/local/opnsense/scripts/OPNsense/AcmeClient/setup.sh; /usr/sbin/daemon -f /usr/local/opnsense/scripts/OPNsense/AcmeClient/lecert.php --mode issue --all --cron
parameters: