diff --git a/net/freeradius/Makefile b/net/freeradius/Makefile
index 9501ad5f1..22a5df126 100644
--- a/net/freeradius/Makefile
+++ b/net/freeradius/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= freeradius
-PLUGIN_VERSION= 1.9.1
+PLUGIN_VERSION= 1.9.2
PLUGIN_COMMENT= RADIUS Authentication, Authorization and Accounting Server
PLUGIN_DEPENDS= freeradius3
PLUGIN_MAINTAINER= m.muenz@gmail.com
diff --git a/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/eap.xml b/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/eap.xml
index 6477516b7..c13503bed 100644
--- a/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/eap.xml
+++ b/net/freeradius/src/opnsense/mvc/app/controllers/OPNsense/Freeradius/forms/eap.xml
@@ -15,7 +15,7 @@
eap.ca
dropdown
- Choose the Root CA.
+ Choose the Root CA. This CA will be trusted to issue client certificates for authentication.
eap.certificate
diff --git a/net/freeradius/src/opnsense/scripts/Freeradius/generate_certs.php b/net/freeradius/src/opnsense/scripts/Freeradius/generate_certs.php
index acf712671..2ac4648a5 100755
--- a/net/freeradius/src/opnsense/scripts/Freeradius/generate_certs.php
+++ b/net/freeradius/src/opnsense/scripts/Freeradius/generate_certs.php
@@ -68,14 +68,32 @@ if (isset($configObj->OPNsense->freeradius)) {
// generate ca pem file
if (!empty($cert->caref)) {
$cert = (array)$cert;
- $ca_pem_content .= ca_chain($cert);
+ $cert_pem_content .= ca_chain($cert);
}
}
}
}
+ $cert_refid = (string)$find_cert->ca;
+ // if eap has a ca-certificate attached, search for its contents
+ if ($cert_refid != "") {
+ foreach ($configObj->ca as $ca) {
+ if ($cert_refid == (string)$ca->refid) {
+ // generate cert pem file
+ $pem_content = trim(str_replace("\n\n", "\n", str_replace(
+ "\r",
+ "",
+ base64_decode((string)$ca->crt)
+ )));
+
+ $pem_content .= "\n";
+ $ca_pem_content .= $pem_content;
+ }
+ }
+ }
+
$cert_refid = (string)$find_cert->crl;
- // if eap has a certificate attached, search for its contents
+ // if eap has a crl attached, search for its contents
if ($cert_refid != "") {
foreach ($configObj->crl as $crl) {
if ($cert_refid == (string)$crl->refid && !empty((string)$crl->text)) {