package acme import "crypto/x509" type CSR struct { Resource Resource `json:"resource"` // new-cert CSR string `json:"csr"` } func (p *Provider) Bundle(s Signer, d *Desire) error { d.cert = make([]*x509.Certificate, 2) // first step: post csr csr, err := d.CSR() if err != nil { return err } req := &CSR{ Resource: ResNewCert, CSR: csr, } resp, err := p.post(p.NewCert, s, req) if err != nil { return err } d.cert[0], err = parseCert(resp) if err != nil { return err } ns := parseHeader(resp) // second step: cet CA resp, err = p.Get(ns.Link["up"]) if err != nil { return err } d.cert[1], err = parseCert(resp) if err != nil { return err } return nil }