From a0d0c73d20f8cfb9e25e455ff6d31360e33d596e Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 7 Jan 2016 10:19:38 +0100 Subject: Fetch CA --- cmd/acme/main.go | 3 +-- provider.go | 20 +++++++++++++++++--- 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 } -- cgit v1.2.3