aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/acme/main.go44
-rw-r--r--desire.go7
-rw-r--r--provider.go1
3 files changed, 29 insertions, 23 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index e4b4a04..dea5dc7 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -51,36 +51,31 @@ func prepare(conf *Config) error {
return nil
}
-func execute(conf *Config) error {
+func satisfice(des *desire) error {
var err error
- for k, des := range conf.Desire {
- if des.account.pending {
- err = des.provider.Register(des.account, des.account.Contacts)
- if err != nil {
- return err
- }
- }
-
- hs := &httpChallenge{Webroot: des.Webroot}
- des.RegisterSolver(acme.ChallengeHTTP, hs)
-
- log.Println("process", k)
-
- err = des.provider.Authorize(des.account, des.Desire)
+ if des.account.pending {
+ err = des.provider.Register(des.account, des.account.Contacts)
if err != nil {
return err
}
+ }
- err = des.provider.Cert(des.account, des.Desire)
- if err != nil {
- return err
- }
+ hs := &httpChallenge{Webroot: des.Webroot}
+ des.RegisterSolver(acme.ChallengeHTTP, hs)
+
+ err = des.provider.Authorize(des.account, des.Desire)
+ if err != nil {
+ return err
+ }
- des.SaveKey(des.Key)
- des.SaveCert(des.Cert)
+ err = des.provider.Cert(des.account, des.Desire)
+ if err != nil {
+ return err
}
+ des.Save(des.Cert, des.Key)
+
return nil
}
@@ -94,7 +89,10 @@ func main() {
log.Fatal(err)
}
httpSolver(conf.Defaults.Listen)
- if err := execute(conf); err != nil {
- log.Fatal(err)
+ for k, des := range conf.Desire {
+ log.Println("satisfice", k)
+ if err := satisfice(des); err != nil {
+ log.Fatal(err)
+ }
}
}
diff --git a/desire.go b/desire.go
index 2110789..789007c 100644
--- a/desire.go
+++ b/desire.go
@@ -45,6 +45,13 @@ func backup(fname string) error {
return os.Rename(fname, fname+".bak")
}
+func (d *Desire) Save(cert, key string) error {
+ if err := d.SaveKey(key); err != nil {
+ return err
+ }
+ return d.SaveCert(cert)
+}
+
func (d *Desire) SaveKey(fname string) error {
if err := backup(fname); err != nil {
return err
diff --git a/provider.go b/provider.go
index 91f91e4..414305e 100644
--- a/provider.go
+++ b/provider.go
@@ -203,6 +203,7 @@ func (p *Provider) solve(s Signer, ch Challenge) error {
}
time.Sleep(time.Second)
}
+ log.Println("done")
return nil
}