diff --git a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dialogHandle.xml b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dialogHandle.xml index cbd484ae8..e8013cd00 100644 --- a/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dialogHandle.xml +++ b/www/caddy/src/opnsense/mvc/app/controllers/OPNsense/Caddy/forms/dialogHandle.xml @@ -109,11 +109,18 @@ checkbox + + handle.HttpVersion + + dropdown + + handle.HttpNtlm checkbox - + + true handle.HttpTlsInsecureSkipVerify 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 db4388ee4..b44276dc2 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 @@ -327,6 +327,14 @@ + + HTTP/1.1, HTTP/2 + + HTTP/1.1 + HTTP/2 + HTTP/3 + + diff --git a/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt b/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt index e3b559237..41622bac3 100644 --- a/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt +++ b/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt @@ -336,6 +336,7 @@ {{ lang._('Fail Duration') }} {{ lang._('Forward Auth') }} {{ lang._('TLS') }} + {{ lang._('HTTP Version') }} {{ lang._('TLS CA') }} {{ lang._('TLS Server Name') }} {{ lang._('NTLM') }} diff --git a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile index 795ba8f62..592f552d5 100644 --- a/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile +++ b/www/caddy/src/opnsense/service/templates/OPNsense/Caddy/Caddyfile @@ -354,6 +354,7 @@ # - HttpTlsTrustedCaCerts (string, optional): The config extracted name of a CA certificate. # - HttpTlsServerName (string, optional): Specifies the server name for the TLS handshake. # - PassiveHealthFailDuration (integer, optional): Enables passive health checks when set > 0. +# - HttpVersion (string, optional): Choose HTTP version. Empty (default) is 1.1 and 2. #} {% macro reverse_proxy_configuration(handle) %} {{ handle.HandleType }} {{ handle.HandlePath|default("") }} { @@ -373,7 +374,7 @@ {% if handle.PassiveHealthFailDuration|default("") %} fail_duration {{ handle.PassiveHealthFailDuration }}s {% endif %} - {% if handle.HttpTls|default("0") == "1" or handle.HttpTlsInsecureSkipVerify|default("0") == "1" or handle.HttpTlsTrustedCaCerts|default("") != "" or handle.HttpTlsServerName|default("") != "" %} + {% if handle.HttpTls|default("0") == "1" or handle.HttpTlsInsecureSkipVerify|default("0") == "1" or handle.HttpTlsTrustedCaCerts or handle.HttpTlsServerName or handle.HttpVersion %} {% if handle.HttpNtlm|default("0") == "1" %} transport http_ntlm { {% if handle.HttpTls|default("0") == "1" %} @@ -391,6 +392,11 @@ } {% else %} transport http { + {# The model does not allow to set a single number as option directly, so we have to map them. #} + {% set version_map = {'http1': 1.1, 'http2': 2, 'http3': 3} %} + {% if handle.HttpVersion %} + versions {{ version_map[handle.HttpVersion] }} + {% endif %} {% if handle.HttpTls|default("0") == "1" %} tls {% endif %}