aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/acme/main.go14
-rw-r--r--cmd/acme/solve_http.go41
-rw-r--r--cmd/acme/solve_tls.go1
-rw-r--r--solve_webroot.go10
4 files changed, 15 insertions, 51 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 67271b8..00c209f 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -63,9 +63,6 @@ func satisfice(des *desire) error {
}
}
- hs := &httpChallenge{Webroot: des.Webroot}
- des.RegisterSolver(acme.ChallengeHTTP, hs)
-
err = des.provider.Authz(des.account, des.Desire)
if err != nil {
return err
@@ -92,8 +89,17 @@ func main() {
if err := prepare(conf); err != nil {
log.Fatal(err)
}
- httpSolver(conf.Defaults.Listen)
+
+ httpSol := acme.NewHTTPSolver(conf.Defaults.Listen)
+
for k, des := range conf.Desire {
+ if des.Webroot != "" {
+ wrSol := acme.NewWebrootSolver(des.Webroot)
+ des.RegisterSolver(acme.ChallengeHTTP, wrSol)
+ } else {
+ des.RegisterSolver(acme.ChallengeHTTP, httpSol)
+ }
+
log.Println("satisfice", k)
if err := satisfice(des); err != nil {
log.Fatal(err)
diff --git a/cmd/acme/solve_http.go b/cmd/acme/solve_http.go
deleted file mode 100644
index f01f1b4..0000000
--- a/cmd/acme/solve_http.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package main
-
-import (
- "io"
- "net/http"
- "path"
-
- "dim13.org/acme"
-)
-
-type httpChallenge struct {
- Webroot string
-}
-
-var httpSrv http.Server
-
-func httpSolver(addr string) {
- httpSrv = http.Server{Addr: addr}
- go httpSrv.ListenAndServe()
-}
-
-func (c *httpChallenge) Solve(token, keyAuth string) error {
- if c.Webroot != "" {
- p := path.Join(c.Webroot, acme.WellKnown, token)
- fd, err := acme.CreatePubFile(p)
- if err != nil {
- return err
- }
- defer fd.Close()
- _, err = io.WriteString(fd, keyAuth)
- return err
- } else {
- p := path.Join(acme.WellKnown, token)
- http.HandleFunc(p, func(w http.ResponseWriter, r *http.Request) {
- io.WriteString(w, keyAuth)
- })
- return nil
- }
-}
-
-func (c *httpChallenge) Solved() error { return nil }
diff --git a/cmd/acme/solve_tls.go b/cmd/acme/solve_tls.go
deleted file mode 100644
index 06ab7d0..0000000
--- a/cmd/acme/solve_tls.go
+++ /dev/null
@@ -1 +0,0 @@
-package main
diff --git a/solve_webroot.go b/solve_webroot.go
index ab767b8..3372c43 100644
--- a/solve_webroot.go
+++ b/solve_webroot.go
@@ -6,16 +6,16 @@ import (
"path"
)
-type webRootSolver struct {
+type webrootSolver struct {
webroot string
file string
}
-func NewWebRootSolver(webroot string) Solver {
- return &webRootSolver{webroot: webroot}
+func NewWebrootSolver(webroot string) Solver {
+ return &webrootSolver{webroot: webroot}
}
-func (s *webRootSolver) Solve(token, keyAuth string) error {
+func (s *webrootSolver) Solve(token, keyAuth string) error {
s.file = path.Join(s.webroot, WellKnown, token)
fd, err := CreatePubFile(s.file)
if err != nil {
@@ -26,6 +26,6 @@ func (s *webRootSolver) Solve(token, keyAuth string) error {
return err
}
-func (s *webRootSolver) Solved() error {
+func (s *webrootSolver) Solved() error {
return os.Remove(s.file)
}