Documentation ¶
Index ¶
- Variables
- type ACMEChallenge
- type ACMEChallengeOptions
- type ACMEChallenges
- type ACMEChallengesPage
- type ACMEService
- type ACMEUser
- type ACMEUserService
- type Certificate
- type Certificates
- type CertificatesPage
- type Getter
- type Info
- type Infos
- type InfosPage
- type ManagementService
- type Options
- type Service
Constants ¶
This section is empty.
Variables ¶
var ( ErrCertificateNotFound = errors.New("certificate not found") ErrCertificateInvalid = errors.New("certificate invalid") ErrFQDNMissing = errors.New("fqdn missing") ErrFQDNInvalid = errors.New("fqdn invalid") ErrFQDNExists = errors.New("fqdn exists") ErrACMEUserNotFound = errors.New("acme user not found") ErrACMEUserEmailInvalid = errors.New("acme user email invalid") ErrACMEChallengeNotFound = errors.New("acme challenge not found") )
Errors that are related to the Certificate Service.
Functions ¶
This section is empty.
Types ¶
type ACMEChallenge ¶
type ACMEChallenge struct { FQDN string `json:"fqdn"` Token string `json:"token,omitempty"` KeyAuth string `json:"key-auth,omitempty"` }
ACMEChallenge provides data about ACME challenge for new certificate issue.
type ACMEChallengeOptions ¶
type ACMEChallengeOptions struct { Token *string `json:"token,omitempty"` KeyAuth *string `json:"key-auth,omitempty"` }
ACMEChallengeOptions is a structure with parameters as pointers to set ACME challenge data. If a parameter is nil, the corresponding ACMEChallenge parameter will not be changed.
type ACMEChallenges ¶
type ACMEChallenges []ACMEChallenge
ACMEChallenges is a list of ACMEChallenge instances.
type ACMEChallengesPage ¶
type ACMEChallengesPage struct { ACMEChallenges ACMEChallenges `json:"acme-challenges"` Previous string `json:"previous,omitempty"` Next string `json:"next,omitempty"` Count int `json:"count,omitempty"` }
ACMEChallengesPage is a paginated list of ACMEChallenge instances.
type ACMEService ¶
type ACMEService interface { // ObtainCertificate requests a new SSL/TLS certificate from // ACME provider and returns an instance of Certificate. ObtainCertificate(fqdn string) (c *Certificate, err error) // IsCertificateBeingObtained tests if certificate is being obtained currently. // It can be used as a locking mechanism. IsCertificateBeingObtained(fqdn string) (yes bool, err error) // ACMEChallenge returns an instance of ACMEChallenge for a FQDN. ACMEChallenge(fqdn string) (c *ACMEChallenge, err error) // UpdateACMEChallenge alters the fields of existing ACMEChallenge. UpdateACMEChallenge(fqdn string, o *ACMEChallengeOptions) (c *ACMEChallenge, err error) // DeleteACMEChallenge deletes an existing ACMEChallenge for a // provided FQDN and returns it. DeleteACMEChallenge(fqdn string) (c *ACMEChallenge, err error) // ACMEChallenges retrieves a paginated list of ACMEChallenge instances. ACMEChallenges(start string, limit int) (page *ACMEChallengesPage, err error) }
ACMEService defines functionality required to obtain SSL/TLS certificate from ACME provider.
type ACMEUser ¶
type ACMEUser struct { ID int `json:"id"` Email string `json:"email"` PrivateKey []byte `json:"private-key"` URL string `json:"url"` NewAuthzURL string `json:"new-authz-url"` DirectoryURL string `json:"directory-url"` }
ACMEUser is hods data about authentication to ACME provider.
type ACMEUserService ¶
type ACMEUserService interface { // ACMEUser returns ACME user with ACME authentication details. ACMEUser() (u *ACMEUser, err error) // RegisterACMEUser registers and saves ACME user authentication data. RegisterACMEUser(directoryURL, email string) (u *ACMEUser, err error) }
ACMEUserService handlers ACME user.
type Certificate ¶
type Certificate struct { FQDN string `json:"fqdn"` ExpirationTime *time.Time `json:"expiration-time,omitempty"` Cert string `json:"cert,omitempty"` Key string `json:"key,omitempty"` ACMEURL string `json:"acme-url,omitempty"` ACMEURLStable string `json:"acme-url-stable,omitempty"` ACMEAccount string `json:"acme-account,omitempty"` }
Certificate holds data related to SSL/TLS certificate.
type Certificates ¶
type Certificates []Certificate
Certificates is a list of Certificate instances.
type CertificatesPage ¶
type CertificatesPage struct { Certificates Certificates `json:"certificates"` Previous string `json:"previous,omitempty"` Next string `json:"next,omitempty"` Count int `json:"count,omitempty"` }
CertificatesPage is a paginated list of Certificate instances.
type Getter ¶ added in v0.2.1
type Getter interface { // Certificate returns a Certificate for provided FQDN. Certificate(fqdn string) (c *Certificate, err error) }
Getter provides interface to get single certificate. It is most useful for services that are only consumers of certificates.
type Info ¶
type Info struct { FQDN string `json:"fqdn"` ExpirationTime *time.Time `json:"expiration-time,omitempty"` ACMEURL string `json:"acme-url,omitempty"` ACMEURLStable string `json:"acme-url-stable,omitempty"` ACMEAccount string `json:"acme-account,omitempty"` }
Info is a subset of Certificate structure fields to provide information about expiration time and ACME issuer.
type InfosPage ¶
type InfosPage struct { Infos Infos `json:"infos"` Previous string `json:"previous,omitempty"` Next string `json:"next,omitempty"` Count int `json:"count,omitempty"` }
InfosPage is a paginated list of Info instances.
type ManagementService ¶
type ManagementService interface { Getter // UpdateCertificate alters the fields of existing Certificate. UpdateCertificate(fqdn string, o *Options) (c *Certificate, err error) // DeleteCertificate deletes an existing Certificate for a // provided FQDN and returns it. DeleteCertificate(fqdn string) (c *Certificate, err error) // Certificates retrieves a paginated list of Certificate instances // ordered by FQDN. Certificates(start string, limit int) (page *CertificatesPage, err error) // CertificatesInfoByExpiry retrieves a paginated list of Info instances // ordered by expiration time. CertificatesInfoByExpiry(since time.Time, start string, limit int) (page *InfosPage, err error) }
ManagementService defines most basic functionality for certificate management.
type Options ¶
type Options struct { Cert *string `json:"cert,omitempty"` Key *string `json:"key,omitempty"` ACMEURL *string `json:"acme-url,omitempty"` ACMEURLStable *string `json:"acme-url-stable,omitempty"` ACMEAccount *string `json:"acme-account,omitempty"` }
Options is a structure with parameters as pointers to set certificate data. If a parameter is nil, the corresponding Certificate parameter will not be changed.
type Service ¶
type Service interface { ManagementService ACMEService ACMEUserService }
Service defines functions that Certificate provider must have.