aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-07 10:19:38 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-07 10:19:38 +0100
commita0d0c73d20f8cfb9e25e455ff6d31360e33d596e (patch)
tree46ae62568dc753a48f5804f0d58502040243310f
parent28eb378ccaccc2d02f3a9de0abf708d869c7292b (diff)
Fetch CA
-rw-r--r--cmd/acme/main.go3
-rw-r--r--provider.go20
2 files changed, 18 insertions, 5 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index db39a0b..7cf990d 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -100,9 +100,8 @@ func main() {
if err != nil {
log.Fatal("cert", err)
}
- log.Println(crt.NotBefore, crt.NotAfter)
- err = saveCert(des, []*x509.Certificate{crt})
+ err = saveCert(des, crt)
if err != nil {
log.Fatal("save cert", err)
}
diff --git a/provider.go b/provider.go
index 3334ced..e22ffb6 100644
--- a/provider.go
+++ b/provider.go
@@ -299,7 +299,7 @@ func (p *Provider) queryStatus(url string) (bool, error) {
return r.Status == StatusValid, nil
}
-func (p *Provider) Cert(s Signer, altnames []string, key *rsa.PrivateKey) (*x509.Certificate, error) {
+func (p *Provider) Cert(s Signer, altnames []string, key *rsa.PrivateKey) ([]*x509.Certificate, error) {
csr, err := NewCSR(altnames, key)
if err != nil {
return nil, err
@@ -314,10 +314,24 @@ func (p *Provider) Cert(s Signer, altnames []string, key *rsa.PrivateKey) (*x509
return nil, err
}
- crt, _, err := p.parseCert(resp)
+ var crts []*x509.Certificate
+
+ crt, ns, err := p.parseCert(resp)
+ if err != nil {
+ return nil, err
+ }
+ crts = append(crts, crt)
+
+ resp, err = p.Get(ns.Link["up"])
+ if err != nil {
+ return nil, err
+ }
+
+ crt, _, err = p.parseCert(resp)
if err != nil {
return nil, err
}
+ crts = append(crts, crt)
- return crt, nil
+ return crts, nil
}