Migrate over to certmagic from using autocert (#190)

* Use certmagic for challenge validation

* WIP

* Get the correct key

* Override preflight check logic

* Fix logging for imported packages and tidy config.cfg

* Fix test and add docstrings

* Update README
This commit is contained in:
Joona Hoikkala
2019-10-20 22:52:19 +03:00
committed by GitHub
parent af542b44a9
commit aa3e7e1b75
8 changed files with 466 additions and 45 deletions

30
challengeprovider.go Normal file
View File

@ -0,0 +1,30 @@
package main
import "github.com/go-acme/lego/challenge/dns01"
// ChallengeProvider implements go-acme/lego Provider interface which is used for ACME DNS challenge handling
type ChallengeProvider struct {
servers []*DNSServer
}
// NewChallengeProvider creates a new instance of ChallengeProvider
func NewChallengeProvider(servers []*DNSServer) ChallengeProvider {
return ChallengeProvider{servers: servers}
}
// Present is used for making the ACME DNS challenge token available for DNS
func (c *ChallengeProvider) Present(_, _, keyAuth string) error {
_, token := dns01.GetRecord("whatever", keyAuth)
for _, s := range c.servers {
s.PersonalKeyAuth = token
}
return nil
}
// CleanUp is called after the run to remove the ACME DNS challenge tokens from DNS records
func (c *ChallengeProvider) CleanUp(_, _, _ string) error {
for _, s := range c.servers {
s.PersonalKeyAuth = ""
}
return nil
}