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 fcba67fa2..913afdc4c 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
@@ -203,7 +203,7 @@ class CertificatesController extends ApiControllerBase
$grid = new UIModelGrid($mdlAcme->certificates->certificate);
return $grid->fetchBindRequest(
$this->request,
- array("enabled", "name", "altNames", "description"),
+ array("enabled", "name", "altNames", "description", "lastUpdate", "statusCode", "statusLastUpdate"),
"name"
);
}
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 dd011e54a..50f6823de 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
@@ -224,6 +224,18 @@
N
+
+
+ N
+
+
+ 100
+ 1000
+
+
+
+ N
+
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 8f3ac324f..f806c2225 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
@@ -69,6 +69,50 @@ POSSIBILITY OF SUCH DAMAGE.
} else {
return "";
}
+ },
+ "certdate": function (column, row) {
+ if (row.lastUpdate == "" || row.lastUpdate == undefined) {
+ return "pending";
+ } else {
+ var certdate = new Date(row.lastUpdate*1000);
+ return certdate.toLocaleString();
+ }
+ },
+ "certstatus": function (column, row) {
+ if (row.statusCode == "" || row.statusCode == undefined) {
+ // fallback to lastUpdate value (unset if cert was never issued/imported)
+ if (row.lastUpdate == "" || row.lastUpdate == undefined) {
+ return "never";
+ } else {
+ return "OK";
+ }
+ } else if (row.statusCode == "100") {
+ return "never";
+ } else if (row.statusCode == "200") {
+ return "OK";
+ } else if (row.statusCode == "250") {
+ return "OK (renewed)";
+ } else if (row.statusCode == "400") {
+ return "failed";
+ } else if (row.statusCode == "500") {
+ return "internal error";
+ } else {
+ return "unknown";
+ }
+ },
+ "certstatusdate": function (column, row) {
+ if (row.statusLastUpdate == "" || row.statusCode == undefined) {
+ // fallback to lastUpdate value
+ if (row.lastUpdate == "" || row.lastUpdate == undefined) {
+ return "unknown";
+ } else {
+ var legacydate = new Date(row.lastUpdate*1000);
+ return legacydate.toLocaleString();
+ }
+ } else {
+ var statusdate = new Date(row.statusLastUpdate*1000);
+ return statusdate.toLocaleString();
+ }
}
},
};
@@ -339,6 +383,9 @@ POSSIBILITY OF SUCH DAMAGE.
| {{ lang._('Certificate Name') }} |
{{ lang._('Multi-Domain (SAN)') }} |
{{ lang._('Description') }} |
+ {{ lang._('Issue/Renewal Date') }} |
+ {{ lang._('Last Acme Status') }} |
+ {{ lang._('Last Acme Run') }} |
{{ lang._('Commands') }} |
{{ lang._('ID') }} |