forked from TrueCloudLab/distribution
a685e3fc98
Vndr has a simpler configuration and allows pointing to forked packages. Additionally other docker projects are now using vndr making vendoring in distribution more consistent. Updates letsencrypt to use fork. No longer uses sub-vendored packages. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package acme
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
const (
|
|
dnsTemplate = "%s %d IN TXT \"%s\""
|
|
)
|
|
|
|
// DNSProviderManual is an implementation of the ChallengeProvider interface
|
|
type DNSProviderManual struct{}
|
|
|
|
// NewDNSProviderManual returns a DNSProviderManual instance.
|
|
func NewDNSProviderManual() (*DNSProviderManual, error) {
|
|
return &DNSProviderManual{}, nil
|
|
}
|
|
|
|
// Present prints instructions for manually creating the TXT record
|
|
func (*DNSProviderManual) Present(domain, token, keyAuth string) error {
|
|
fqdn, value, ttl := DNS01Record(domain, keyAuth)
|
|
dnsRecord := fmt.Sprintf(dnsTemplate, fqdn, ttl, value)
|
|
|
|
authZone, err := FindZoneByFqdn(fqdn, RecursiveNameservers)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
logf("[INFO] acme: Please create the following TXT record in your %s zone:", authZone)
|
|
logf("[INFO] acme: %s", dnsRecord)
|
|
logf("[INFO] acme: Press 'Enter' when you are done")
|
|
|
|
reader := bufio.NewReader(os.Stdin)
|
|
_, _ = reader.ReadString('\n')
|
|
return nil
|
|
}
|
|
|
|
// CleanUp prints instructions for manually removing the TXT record
|
|
func (*DNSProviderManual) CleanUp(domain, token, keyAuth string) error {
|
|
fqdn, _, ttl := DNS01Record(domain, keyAuth)
|
|
dnsRecord := fmt.Sprintf(dnsTemplate, fqdn, ttl, "...")
|
|
|
|
authZone, err := FindZoneByFqdn(fqdn, RecursiveNameservers)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
logf("[INFO] acme: You can now remove this TXT record from your %s zone:", authZone)
|
|
logf("[INFO] acme: %s", dnsRecord)
|
|
return nil
|
|
}
|