github.com/volts-dev/volts@v0.0.0-20240120094013-5e9c65924106/internal/acme/acme.go (about)

     1  // Package acme abstracts away various ACME libraries
     2  package acme
     3  
     4  import (
     5  	"crypto/tls"
     6  	"errors"
     7  	"net"
     8  )
     9  
    10  var (
    11  	// ErrProviderNotImplemented can be returned when attempting to
    12  	// instantiate an unimplemented provider.
    13  	ErrProviderNotImplemented = errors.New("Provider not implemented")
    14  )
    15  
    16  // Provider is a ACME provider interface.
    17  type Provider interface {
    18  	// Listen returns a new listener
    19  	Listen(...string) (net.Listener, error)
    20  	// TLSConfig returns a tls config
    21  	TLSConfig(...string) (*tls.Config, error)
    22  }
    23  
    24  // The Let's Encrypt ACME endpoints.
    25  const (
    26  	LetsEncryptStagingCA    = "https://acme-staging-v02.api.letsencrypt.org/directory"
    27  	LetsEncryptProductionCA = "https://acme-v02.api.letsencrypt.org/directory"
    28  )