|
|
@ -169,6 +169,7 @@ func (st ServerType) Setup(originalServerBlocks []caddyfile.ServerBlock, |
|
|
|
|
|
|
|
// now for the TLS app! (TODO: refactor into own func)
|
|
|
|
tlsApp := caddytls.TLS{CertificatesRaw: make(caddy.ModuleMap)} |
|
|
|
var certLoaders []caddytls.CertificateLoader |
|
|
|
for _, p := range pairings { |
|
|
|
for i, sblock := range p.serverBlocks { |
|
|
|
// tls automation policies
|
|
|
@ -194,17 +195,25 @@ func (st ServerType) Setup(originalServerBlocks []caddyfile.ServerBlock, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// tls certificate loaders
|
|
|
|
if clVals, ok := sblock.pile["tls.certificate_loader"]; ok { |
|
|
|
for _, clVal := range clVals { |
|
|
|
loader := clVal.Value.(caddytls.CertificateLoader) |
|
|
|
loaderName := caddy.GetModuleName(loader) |
|
|
|
tlsApp.CertificatesRaw[loaderName] = caddyconfig.JSON(loader, &warnings) |
|
|
|
certLoaders = append(certLoaders, clVal.Value.(caddytls.CertificateLoader)) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// group certificate loaders by module name, then add to config
|
|
|
|
if len(certLoaders) > 0 { |
|
|
|
loadersByName := make(map[string][]caddytls.CertificateLoader) |
|
|
|
for _, cl := range certLoaders { |
|
|
|
name := caddy.GetModuleName(cl) |
|
|
|
loadersByName[name] = append(loadersByName[name], cl) |
|
|
|
} |
|
|
|
for certLoaderName, loaders := range loadersByName { |
|
|
|
tlsApp.CertificatesRaw[certLoaderName] = caddyconfig.JSON(loaders, &warnings) |
|
|
|
} |
|
|
|
} |
|
|
|
// if global ACME CA, DNS, or email were set, append a catch-all automation
|
|
|
|
// policy that ensures they will be used if no tls directive was used
|
|
|
|
acmeCA, hasACMECA := options["acme_ca"] |
|
|
|