|
@ -24,6 +24,7 @@ import ( |
|
|
"time" |
|
|
"time" |
|
|
|
|
|
|
|
|
"github.com/caddyserver/caddy/v2" |
|
|
"github.com/caddyserver/caddy/v2" |
|
|
|
|
|
"github.com/caddyserver/caddy/v2/caddyconfig" |
|
|
"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile" |
|
|
"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile" |
|
|
"github.com/caddyserver/certmagic" |
|
|
"github.com/caddyserver/certmagic" |
|
|
"github.com/mholt/acmez" |
|
|
"github.com/mholt/acmez" |
|
@ -220,6 +221,7 @@ func (iss *ACMEIssuer) GetACMEIssuer() *ACMEIssuer { return iss } |
|
|
// alt_tlsalpn_port <port>
|
|
|
// alt_tlsalpn_port <port>
|
|
|
// eab <key_id> <mac_key>
|
|
|
// eab <key_id> <mac_key>
|
|
|
// trusted_roots <pem_files...>
|
|
|
// trusted_roots <pem_files...>
|
|
|
|
|
|
// dns <provider_name> [<options>]
|
|
|
// resolvers <dns_servers...>
|
|
|
// resolvers <dns_servers...>
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
//
|
|
@ -318,6 +320,30 @@ func (iss *ACMEIssuer) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { |
|
|
case "trusted_roots": |
|
|
case "trusted_roots": |
|
|
iss.TrustedRootsPEMFiles = d.RemainingArgs() |
|
|
iss.TrustedRootsPEMFiles = d.RemainingArgs() |
|
|
|
|
|
|
|
|
|
|
|
case "dns": |
|
|
|
|
|
if !d.NextArg() { |
|
|
|
|
|
return d.ArgErr() |
|
|
|
|
|
} |
|
|
|
|
|
provName := d.Val() |
|
|
|
|
|
if iss.Challenges == nil { |
|
|
|
|
|
iss.Challenges = new(ChallengesConfig) |
|
|
|
|
|
} |
|
|
|
|
|
if iss.Challenges.DNS == nil { |
|
|
|
|
|
iss.Challenges.DNS = new(DNSChallengeConfig) |
|
|
|
|
|
} |
|
|
|
|
|
dnsProvModule, err := caddy.GetModule("dns.providers." + provName) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return d.Errf("getting DNS provider module named '%s': %v", provName, err) |
|
|
|
|
|
} |
|
|
|
|
|
dnsProvModuleInstance := dnsProvModule.New() |
|
|
|
|
|
if unm, ok := dnsProvModuleInstance.(caddyfile.Unmarshaler); ok { |
|
|
|
|
|
err = unm.UnmarshalCaddyfile(d.NewFromNextSegment()) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return err |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
iss.Challenges.DNS.ProviderRaw = caddyconfig.JSONModuleObject(dnsProvModuleInstance, "name", provName, nil) |
|
|
|
|
|
|
|
|
case "resolvers": |
|
|
case "resolvers": |
|
|
if !d.NextArg() { |
|
|
if !d.NextArg() { |
|
|
return d.ArgErr() |
|
|
return d.ArgErr() |
|
|