aboutsummaryrefslogtreecommitdiff
path: root/cmd/acme/solve_http.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/acme/solve_http.go')
-rw-r--r--cmd/acme/solve_http.go38
1 files changed, 13 insertions, 25 deletions
diff --git a/cmd/acme/solve_http.go b/cmd/acme/solve_http.go
index f9ab400..8e5cfaf 100644
--- a/cmd/acme/solve_http.go
+++ b/cmd/acme/solve_http.go
@@ -2,7 +2,6 @@ package main
import (
"io"
- "log"
"net/http"
"path"
@@ -12,39 +11,28 @@ import (
type httpChallenge struct {
http.Server
Webroot string
- file string
started bool
}
-func (c *httpChallenge) Init() error {
- if !c.started {
- go c.ListenAndServe()
- c.started = true
- }
- return nil
-}
-
func (c *httpChallenge) Solve(token, keyAuth string) error {
- log.Println("solver", c)
if c.Webroot != "" {
- return c.solveWebroot(token, keyAuth)
+ 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 {
+ if !c.started {
+ go c.ListenAndServe()
+ c.started = true
+ }
p := path.Join(acme.WellKnown, token)
http.HandleFunc(p, func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, keyAuth)
})
+ return nil
}
- return nil
-}
-
-func (c *httpChallenge) solveWebroot(token, keyAuth string) error {
- log.Println("Solve WebRoot")
- c.file = path.Join(c.Webroot, acme.WellKnown, token)
- fd, err := acme.CreatePubFile(c.file)
- if err != nil {
- return err
- }
- defer fd.Close()
- _, err = fd.Write([]byte(keyAuth))
- return err
}