From 64a38846959331313ac3b13a8484d267bf177c16 Mon Sep 17 00:00:00 2001
From: Monviech <79600909+Monviech@users.noreply.github.com>
Date: Sat, 10 Aug 2024 12:11:16 +0200
Subject: [PATCH] www/caddy: Add Disable Propagation Timeout in DNS Provider
Tab. (#4170)
---
www/caddy/Makefile | 2 +-
www/caddy/pkg-descr | 4 +++
.../OPNsense/Caddy/forms/dnsprovider.xml | 11 ++++++++
.../mvc/app/models/OPNsense/Caddy/Caddy.xml | 1 +
.../templates/OPNsense/Caddy/Caddyfile | 26 ++++++++++++++-----
5 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/www/caddy/Makefile b/www/caddy/Makefile
index 1c2aedae1..8a8b2898e 100644
--- a/www/caddy/Makefile
+++ b/www/caddy/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= caddy
-PLUGIN_VERSION= 1.6.2
+PLUGIN_VERSION= 1.6.3
PLUGIN_DEPENDS= caddy-custom
PLUGIN_COMMENT= Easy to configure Reverse Proxy with Automatic HTTPS and Dynamic DNS
PLUGIN_MAINTAINER= cedrik@pischem.com
diff --git a/www/caddy/pkg-descr b/www/caddy/pkg-descr
index df004fa8c..570748fa5 100644
--- a/www/caddy/pkg-descr
+++ b/www/caddy/pkg-descr
@@ -28,6 +28,10 @@ DOC: https://docs.opnsense.org/manual/how-tos/caddy.html
Plugin Changelog
================
+1.6.3
+
+* Add: Disable Propagation Timeout in DNS Provider Tab. This can help if the DNS Challenge fails due to DNS Propagation being too slow.
+
1.6.2
* Add: Authentik as authentication provider (contributed by Tim-Sc)
diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml
index 87fedb3ca..738419d5c 100644
--- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml
+++ b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dnsprovider.xml
@@ -46,4 +46,15 @@
text
+
+ header
+
+ true
+
+
+ caddy.general.TlsDnsPropagationTimeout
+
+ checkbox
+
+
diff --git a/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml b/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
index d3c0d2ed2..f61d5c937 100644
--- a/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
+++ b/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
@@ -69,6 +69,7 @@
+
diff --git a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile
index 2ee50d271..32d33f062 100644
--- a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile
+++ b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile
@@ -318,19 +318,32 @@
# - @param dnsChallenge (boolean): Indicates if a DNS challenge is used for certificate authentication.
# - @param dnsSecretApiKey (string, optional): A secret API key or token for additional security, depending on the provider.
# - @param TlsDnsOptionalField1 to 4 (string, optional): Additional fields for specific DNS provider configurations.
+# - @param TlsDnsPropagationTimeout (boolean, optional): Disables Propagation Timeout for DNS Challenge.
#}
-{% macro tls_configuration(dnsProvider, dnsApiKey, customCert, dnsChallenge, dnsSecretApiKey, TlsDnsOptionalField1, TlsDnsOptionalField2, TlsDnsOptionalField3, TlsDnsOptionalField4) %}
+{% macro tls_configuration(dnsProvider, dnsApiKey, customCert, dnsChallenge, dnsSecretApiKey, TlsDnsOptionalField1, TlsDnsOptionalField2, TlsDnsOptionalField3, TlsDnsOptionalField4, TlsDnsPropagationTimeout) %}
{% if dnsChallenge == "1" and dnsProvider %}
{% if dnsProvider in dnsProviderSpecialConfig %}
tls {
- dns {{ dnsProvider }} {
- {% include "OPNsense/Caddy/includeDnsProvider" %}
+ issuer acme {
+ dns {{ dnsProvider }} {
+ {% include "OPNsense/Caddy/includeDnsProvider" %}
+ }
+ {% if TlsDnsPropagationTimeout|default("0") == "1" %}
+ propagation_delay 30s
+ propagation_timeout -1
+ {% endif %}
}
}
{% else %}
tls {
- {# Other DNS Providers fall under this default #}
- dns {{ dnsProvider }} {{ dnsApiKey }}
+ issuer acme {
+ {# Other DNS Providers fall under this default #}
+ dns {{ dnsProvider }} {{ dnsApiKey }}
+ {% if TlsDnsPropagationTimeout|default("0") == "1" %}
+ propagation_delay 30s
+ propagation_timeout -1
+ {% endif %}
+ }
}
{% endif %}
{% endif %}
@@ -545,7 +558,8 @@
{% endif %}
{% set customCert = reverse.CustomCertificate|default("") %}
{% set dnsChallenge = reverse.DnsChallenge|default("0") %}
- {{ tls_configuration(dnsProvider, dnsApiKey, customCert, dnsChallenge, dnsSecretApiKey, TlsDnsOptionalField1, TlsDnsOptionalField2, TlsDnsOptionalField3, TlsDnsOptionalField4) }}
+ {% set TlsDnsPropagationTimeout = generalSettings.TlsDnsPropagationTimeout %}
+ {{ tls_configuration(dnsProvider, dnsApiKey, customCert, dnsChallenge, dnsSecretApiKey, TlsDnsOptionalField1, TlsDnsOptionalField2, TlsDnsOptionalField3, TlsDnsOptionalField4, TlsDnsPropagationTimeout) }}
{% if not reverse.accesslist %}
{% set basicauth_uuids = reverse.basicauth %}