From 42041e5fd513019f780e109ff1d2875abbec75df Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Wed, 16 Nov 2016 06:50:31 +0100 Subject: [PATCH] net/haproxy: add "default certificate" parameter, fixes #51 (#55) --- .../OPNsense/HAProxy/forms/dialogFrontend.xml | 7 +++++++ .../mvc/app/models/OPNsense/HAProxy/HAProxy.xml | 5 +++++ .../service/templates/OPNsense/HAProxy/haproxy.conf | 11 ++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml index 6508bbe11..e6ed0b2c8 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml @@ -64,6 +64,13 @@ To import additional certificates, go to Certificate Manager.]]> Type certificate name or choose from list. + + frontend.ssl_default_certificate + + dropdown + NOTE: This parameter is optional to enforce a certain sort order for certificates. The certificate itself must still be listed under "Certificates".]]> + true + frontend.ssl_customOptions diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml index b96f80ae2..3f71ce11d 100644 --- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml +++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml @@ -282,6 +282,11 @@ Y Please select a valid certificate from the list. + + N + N + Please select a valid certificate from the list. + N diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf index f22de296f..4b2946f20 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -551,8 +551,17 @@ frontend {{frontend.name}} {% if frontend.ssl_enabled == '1' %} {# # collect ssl certs (if configured) #} {% if frontend.ssl_certificates|default("") != "" %} +{# # check if a default certificate is configured #} +{% if frontend.ssl_default_certificate|default("") != "" %} +{% do ssl_certs.append('crt /var/etc/haproxy/ssl/' ~ frontend.ssl_default_certificate ~ '.pem') %} +{% endif %} {% for cert in frontend.ssl_certificates.split(",") %} -{% do ssl_certs.append('crt /var/etc/haproxy/ssl/' ~ cert ~ '.pem') %} +{# # skip default certificate, it was already added to the list #} +{% if frontend.ssl_default_certificate|default("") != "" and cert == frontend.ssl_default_certificate %} +{# # do nothing #} +{% else %} +{% do ssl_certs.append('crt /var/etc/haproxy/ssl/' ~ cert ~ '.pem') %} +{% endif %} {% endfor %} {% endif %} {# # advanced ssl options #}