all repos — website @ de704a079eb09b0b9126cb44839d1c0a34014173

My website

add wildcard domain redirect support

Alan Pearce
commit

de704a079eb09b0b9126cb44839d1c0a34014173

parent

bfc935f6ea7b00c539192e486936b8ffbb5a403e

1 file changed, 23 insertions(+), 0 deletions(-)

changed files
M internal/server/tls.gointernal/server/tls.go
@@ -12,6 +12,7 @@
"github.com/ardanlabs/conf/v3" "github.com/caddyserver/caddy/v2" "github.com/caddyserver/certmagic" + "github.com/libdns/acmedns" certmagic_redis "github.com/pberkel/caddy-storage-redis" "gitlab.com/tozd/go/errors" )
@@ -22,6 +23,13 @@ Username string `conf:"default:default"`
Password string `conf:"required"` EncryptionKey string `conf:"required"` KeyPrefix string `conf:"default:certmagic"` +} + +type acmeConfig struct { + Username string `conf:"required"` + Password string `conf:"required"` + Subdomain string `conf:"required"` + ServerURL string `conf:"env:SERVER_URL,default:https://acme.alanpearce.eu"` } func (s *Server) serveTLS() (err error) {
@@ -71,6 +79,21 @@ _, err = conf.Parse("REDIS", rc)
if err != nil { return errors.Wrap(err, "could not parse redis config") } + + acme := &acmedns.Provider{} + _, err = conf.Parse("ACME", acme) + if err != nil { + return errors.Wrap(err, "could not parse ACME config") + } + + issuer.DNS01Solver = &certmagic.DNS01Solver{ + DNSManager: certmagic.DNSManager{ + DNSProvider: acme, + Logger: certmagic.Default.Logger, + }, + } + + log.Debug("acme", "username", acme.Username, "subdomain", acme.Subdomain, "server_url", acme.ServerURL) rs := certmagic_redis.New() rs.Address = []string{rc.Address}