Documentation ¶
Overview ¶
Package cloudflare implements a DNS provider for solving the DNS-01 challenge using cloudflare DNS.
Index ¶
Constants ¶
const CloudFlareAPIURL = "https://api.cloudflare.com/client/v4"
CloudFlareAPIURL represents the API endpoint to call. TODO: Unexport?
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DNSProvider ¶
type DNSProvider struct {
// contains filtered or unexported fields
}
DNSProvider is an implementation of the acme.ChallengeProvider interface
func NewDNSProvider ¶
func NewDNSProvider(dns01Nameservers []string, userAgent string) (*DNSProvider, error)
NewDNSProvider returns a DNSProvider instance configured for cloudflare. Credentials must be passed in the environment variables: CLOUDFLARE_EMAIL and CLOUDFLARE_API_KEY.
func NewDNSProviderCredentials ¶
func NewDNSProviderCredentials(email, key, token string, dns01Nameservers []string, userAgent string) (*DNSProvider, error)
NewDNSProviderCredentials uses the supplied credentials to return a DNSProvider instance configured for cloudflare.
func (*DNSProvider) CleanUp ¶
func (c *DNSProvider) CleanUp(domain, fqdn, value string) error
CleanUp removes the TXT record matching the specified parameters
func (*DNSProvider) Present ¶
func (c *DNSProvider) Present(domain, fqdn, value string) error
Present creates a TXT record to fulfil the dns-01 challenge
type DNSProviderType ¶ added in v1.8.0
type DNSProviderType interface {
// contains filtered or unexported methods
}
DNSProviderType is the Mockable Interface
type DNSZone ¶ added in v1.8.0
DNSZone is the Zone-Record returned from Cloudflare (we`ll ignore everything we don't need) See https://api.cloudflare.com/#zone-properties
func FindNearestZoneForFQDN ¶ added in v1.8.0
func FindNearestZoneForFQDN(c DNSProviderType, fqdn string) (DNSZone, error)
FindNearestZoneForFQDN will try to traverse the official Cloudflare API to find the nearest valid Zone. It's a replacement for /pkg/issuer/acme/dns/util/wait.go#FindZoneByFqdn
example.com. ← Zone-Record found for the SLD (in most cases) └── foo.example.com. ← Zone-Record could be possibly here, but in this case not. └── _acme-challenge.foo.example.com. ← Starting point, the FQDN.
It will try to call the API for each branch (from bottom to top) and see if there's a Zone-Record returned. Calling See https://api.cloudflare.com/#zone-list-zones