summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2021-02-08 11:06:19 -0700
committerMatthew Holt <mholt@users.noreply.github.com>2021-02-08 11:06:19 -0700
commit653a0d3f6bd7b66197abd1e00e366164876a9f2b (patch)
treef9dd5a544127add6a5c1388dc1a83ad06f2195f3
parent0aefa7b0478f3a16f33d386b9de0167ed8cf7e2a (diff)
httpcaddyfile: Fix automation policies
Fixes a bug introduced in #3862
-rw-r--r--caddyconfig/httpcaddyfile/tlsapp.go3
-rw-r--r--caddytest/integration/caddyfile_adapt/tls_automation_policies_3.txt89
2 files changed, 91 insertions, 1 deletions
diff --git a/caddyconfig/httpcaddyfile/tlsapp.go b/caddyconfig/httpcaddyfile/tlsapp.go
index d831d1b..45ba9d2 100644
--- a/caddyconfig/httpcaddyfile/tlsapp.go
+++ b/caddyconfig/httpcaddyfile/tlsapp.go
@@ -125,11 +125,12 @@ func (st ServerType) buildTLSApp(
if issuerVals, ok := sblock.pile["tls.cert_issuer"]; ok {
var issuers []certmagic.Issuer
for _, issuerVal := range issuerVals {
- ap.Issuers = append(ap.Issuers, issuerVal.Value.(certmagic.Issuer))
+ issuers = append(issuers, issuerVal.Value.(certmagic.Issuer))
}
if ap == catchAllAP && !reflect.DeepEqual(ap.Issuers, issuers) {
return nil, warnings, fmt.Errorf("automation policy from site block is also default/catch-all policy because of key without hostname, and the two are in conflict: %#v != %#v", ap.Issuers, issuers)
}
+ ap.Issuers = issuers
}
// custom bind host
diff --git a/caddytest/integration/caddyfile_adapt/tls_automation_policies_3.txt b/caddytest/integration/caddyfile_adapt/tls_automation_policies_3.txt
new file mode 100644
index 0000000..da5824a
--- /dev/null
+++ b/caddytest/integration/caddyfile_adapt/tls_automation_policies_3.txt
@@ -0,0 +1,89 @@
+# https://caddy.community/t/caddyfile-having-individual-sites-differ-from-global-options/11297
+{
+ local_certs
+}
+
+a.example.com {
+ tls internal
+}
+
+b.example.com {
+ tls abc@example.com
+}
+
+c.example.com {
+}
+----------
+{
+ "apps": {
+ "http": {
+ "servers": {
+ "srv0": {
+ "listen": [
+ ":443"
+ ],
+ "routes": [
+ {
+ "match": [
+ {
+ "host": [
+ "a.example.com"
+ ]
+ }
+ ],
+ "terminal": true
+ },
+ {
+ "match": [
+ {
+ "host": [
+ "b.example.com"
+ ]
+ }
+ ],
+ "terminal": true
+ },
+ {
+ "match": [
+ {
+ "host": [
+ "c.example.com"
+ ]
+ }
+ ],
+ "terminal": true
+ }
+ ]
+ }
+ }
+ },
+ "tls": {
+ "automation": {
+ "policies": [
+ {
+ "subjects": [
+ "b.example.com"
+ ],
+ "issuers": [
+ {
+ "email": "abc@example.com",
+ "module": "acme"
+ },
+ {
+ "email": "abc@example.com",
+ "module": "zerossl"
+ }
+ ]
+ },
+ {
+ "issuers": [
+ {
+ "module": "internal"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+} \ No newline at end of file