// acme implements Automatic Certificate Management Environment package acme // Important header fields // // Replay-Nonce each response, required for next request // Link links to next stage // Retry-After polling interval // Location next step // Content-Location cert // Action Request Response // // Register POST new-reg 201 -> reg // Request challenges POST new-authz 201 -> authz // Answer challenges POST challenge 200 // Poll for status GET authz 200 // Request issuance POST new-cert 201 -> cert // Check for new cert GET cert 200 /* directory . . .................................................... . . . . . . . . V "next" V "next" V V new-reg ---+----> new-authz ---+----> new-cert revoke-cert . | . | . ^ . | . | . | "revoke" V | V | V | reg* ----+ authz -----+ cert-----------+ . ^ | . | "up" | "up" V | V challenge cert-chain */ /* func Dial(key crypto.PrivateKey, dir string) (*Provider, error) func (p *Provider) Register(email, phone string) error func (p *Provider) Authorize(domain []string, sol Solver) error func (p *Provider) Cert() (*x509.Certificate, error) func (p *Provider) Revoke(cert *x509.Certificate) error func (p *HTTPSolver) Server() *http.Server func (p *TLSSolver) Server() *http.Server */