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: