forked from TrueCloudLab/lego
fix: CNAME support (#1735)
This commit is contained in:
parent
1b56aa0d2f
commit
6cc21f2753
43 changed files with 132 additions and 102 deletions
|
@ -107,6 +107,7 @@ func (d *DNSProvider) Present(domain, _, keyAuth string) error {
|
|||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// Check if credentials were previously saved for this domain.
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
account, err := d.storage.Fetch(domain)
|
||||
// Errors other than goacmeDNS.ErrDomainNotFound are unexpected.
|
||||
if err != nil && !errors.Is(err, goacmedns.ErrDomainNotFound) {
|
||||
|
|
|
@ -132,7 +132,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zoneName, err := d.getHostedZone(domain)
|
||||
zoneName, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("alicloud: %w", err)
|
||||
}
|
||||
|
@ -153,12 +153,12 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
records, err := d.findTxtRecords(domain, fqdn)
|
||||
records, err := d.findTxtRecords(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("alicloud: %w", err)
|
||||
}
|
||||
|
||||
_, err = d.getHostedZone(domain)
|
||||
_, err = d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("alicloud: %w", err)
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ func (d *DNSProvider) getHostedZone(domain string) (string, error) {
|
|||
startPage++
|
||||
}
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -233,8 +233,8 @@ func (d *DNSProvider) newTxtRecord(zone, fqdn, value string) (*alidns.AddDomainR
|
|||
return request, nil
|
||||
}
|
||||
|
||||
func (d *DNSProvider) findTxtRecords(domain, fqdn string) ([]alidns.Record, error) {
|
||||
zoneName, err := d.getHostedZone(domain)
|
||||
func (d *DNSProvider) findTxtRecords(fqdn string) ([]alidns.Record, error) {
|
||||
zoneName, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("aurora: could not determine zone for domain %q: %w", domain, err)
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
return fmt.Errorf("unknown recordID for %q", fqdn)
|
||||
}
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(fqdn))
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not determine zone for domain %q: %w", domain, err)
|
||||
}
|
||||
|
|
|
@ -114,6 +114,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
Value: value,
|
||||
}}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
_, err := d.addTxtRecord(domain, records)
|
||||
if err != nil {
|
||||
return fmt.Errorf("autodns: %w", err)
|
||||
|
@ -133,6 +134,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
Value: value,
|
||||
}}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
if err := d.removeTXTRecord(domain, records); err != nil {
|
||||
return fmt.Errorf("autodns: %w", err)
|
||||
}
|
||||
|
|
|
@ -101,6 +101,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
|
||||
// Present creates a TXT record to fulfill the dns-01 challenge.
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainID, err := d.getDomainIDByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("checkdomain: %w", err)
|
||||
|
@ -111,10 +112,10 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
return fmt.Errorf("checkdomain: %w", err)
|
||||
}
|
||||
|
||||
name, value := dns01.GetRecord(domain, keyAuth)
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
err = d.createRecord(domainID, &Record{
|
||||
Name: name,
|
||||
Name: fqdn,
|
||||
TTL: d.config.TTL,
|
||||
Type: "TXT",
|
||||
Value: value,
|
||||
|
@ -129,6 +130,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
|
||||
// CleanUp removes the TXT record previously created.
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainID, err := d.getDomainIDByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("checkdomain: %w", err)
|
||||
|
@ -139,15 +141,15 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
return fmt.Errorf("checkdomain: %w", err)
|
||||
}
|
||||
|
||||
name, value := dns01.GetRecord(domain, keyAuth)
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
err = d.deleteTXTRecord(domainID, name, value)
|
||||
err = d.deleteTXTRecord(domainID, fqdn, value)
|
||||
if err != nil {
|
||||
return fmt.Errorf("checkdomain: %w", err)
|
||||
}
|
||||
|
||||
d.domainIDMu.Lock()
|
||||
delete(d.domainIDMapping, name)
|
||||
delete(d.domainIDMapping, fqdn)
|
||||
d.domainIDMu.Unlock()
|
||||
|
||||
return nil
|
||||
|
|
|
@ -93,7 +93,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zoneName, err := d.getHostedZone(domain)
|
||||
zoneName, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("dnsimple: %w", err)
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
records, err := d.findTxtRecords(domain, fqdn)
|
||||
records, err := d.findTxtRecords(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("dnsimple: %w", err)
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
}
|
||||
|
||||
func (d *DNSProvider) getHostedZone(domain string) (string, error) {
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -175,8 +175,8 @@ func (d *DNSProvider) getHostedZone(domain string) (string, error) {
|
|||
return hostedZone.Name, nil
|
||||
}
|
||||
|
||||
func (d *DNSProvider) findTxtRecords(domain, fqdn string) ([]dnsimple.ZoneRecord, error) {
|
||||
zoneName, err := d.getHostedZone(domain)
|
||||
func (d *DNSProvider) findTxtRecords(fqdn string) ([]dnsimple.ZoneRecord, error) {
|
||||
zoneName, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -88,7 +88,8 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
// Present creates a TXT record to fulfill the dns-01 challenge.
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
zoneID, zoneName, err := d.getHostedZone(domain)
|
||||
|
||||
zoneID, zoneName, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -106,12 +107,12 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
records, err := d.findTxtRecords(domain, fqdn)
|
||||
zoneID, zoneName, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
zoneID, _, err := d.getHostedZone(domain)
|
||||
records, err := d.findTxtRecords(fqdn, zoneID, zoneName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -137,7 +138,7 @@ func (d *DNSProvider) getHostedZone(domain string) (string, string, error) {
|
|||
return "", "", fmt.Errorf("API call failed: %w", err)
|
||||
}
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
|
@ -168,12 +169,7 @@ func (d *DNSProvider) newTxtRecord(zone, fqdn, value string, ttl int) *dnspod.Re
|
|||
}
|
||||
}
|
||||
|
||||
func (d *DNSProvider) findTxtRecords(domain, fqdn string) ([]dnspod.Record, error) {
|
||||
zoneID, zoneName, err := d.getHostedZone(domain)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (d *DNSProvider) findTxtRecords(fqdn, zoneID, zoneName string) ([]dnspod.Record, error) {
|
||||
recordName := extractRecordName(fqdn, zoneName)
|
||||
|
||||
var records []dnspod.Record
|
||||
|
|
|
@ -99,6 +99,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
rootDomain, err := d.client.GetRootDomain(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("dynu: could not find root domain for %s: %w", domain, err)
|
||||
|
@ -138,6 +139,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
rootDomain, err := d.client.GetRootDomain(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("dynu: could not find root domain for %s: %w", domain, err)
|
||||
|
|
|
@ -109,7 +109,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := findZone(domain)
|
||||
zone, err := findZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("edgedns: %w", err)
|
||||
}
|
||||
|
@ -161,7 +161,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := findZone(domain)
|
||||
zone, err := findZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("edgedns: %w", err)
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
}
|
||||
|
||||
func findZone(domain string) (string, error) {
|
||||
zone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
zone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ func TestLiveTTL(t *testing.T) {
|
|||
}()
|
||||
|
||||
fqdn := "_acme-challenge." + domain + "."
|
||||
zone, err := findZone(domain)
|
||||
zone, err := findZone(fqdn)
|
||||
require.NoError(t, err)
|
||||
|
||||
resourceRecordSets, err := configdns.GetRecordList(zone, fqdn, "TXT")
|
||||
|
|
|
@ -158,12 +158,12 @@ func TestDNSProvider_findZone(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
desc: "Extract root record name",
|
||||
domain: "bar.com",
|
||||
domain: "bar.com.",
|
||||
expected: "bar.com",
|
||||
},
|
||||
{
|
||||
desc: "Extract sub record name",
|
||||
domain: "foo.bar.com",
|
||||
domain: "foo.bar.com.",
|
||||
expected: "bar.com",
|
||||
},
|
||||
}
|
||||
|
|
|
@ -113,7 +113,8 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
ctx := context.Background()
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
zoneName, recordName, err := d.findZoneAndRecordName(fqdn, domain)
|
||||
|
||||
zoneName, recordName, err := d.findZoneAndRecordName(fqdn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -169,7 +170,8 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
ctx := context.Background()
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
zoneName, recordName, err := d.findZoneAndRecordName(fqdn, domain)
|
||||
|
||||
zoneName, recordName, err := d.findZoneAndRecordName(fqdn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -244,8 +246,8 @@ func (d *DNSProvider) findExistingRecordID(zoneID, recordName string) (string, e
|
|||
}
|
||||
|
||||
// findZoneAndRecordName Extract DNS zone and DNS entry name.
|
||||
func (d *DNSProvider) findZoneAndRecordName(fqdn, domain string) (string, string, error) {
|
||||
zone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
func (d *DNSProvider) findZoneAndRecordName(fqdn string) (string, string, error) {
|
||||
zone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
|
|
|
@ -140,13 +140,11 @@ func TestDNSProvider_FindZoneAndRecordName(t *testing.T) {
|
|||
testCases := []struct {
|
||||
desc string
|
||||
fqdn string
|
||||
domain string
|
||||
expected expected
|
||||
}{
|
||||
{
|
||||
desc: "Extract root record name",
|
||||
fqdn: "_acme-challenge.bar.com.",
|
||||
domain: "bar.com",
|
||||
expected: expected{
|
||||
zone: "bar.com",
|
||||
recordName: "_acme-challenge",
|
||||
|
@ -155,7 +153,6 @@ func TestDNSProvider_FindZoneAndRecordName(t *testing.T) {
|
|||
{
|
||||
desc: "Extract sub record name",
|
||||
fqdn: "_acme-challenge.foo.bar.com.",
|
||||
domain: "foo.bar.com",
|
||||
expected: expected{
|
||||
zone: "bar.com",
|
||||
recordName: "_acme-challenge.foo",
|
||||
|
@ -168,7 +165,7 @@ func TestDNSProvider_FindZoneAndRecordName(t *testing.T) {
|
|||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
zone, recordName, err := provider.findZoneAndRecordName(test.fqdn, test.domain)
|
||||
zone, recordName, err := provider.findZoneAndRecordName(test.fqdn)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, test.expected.zone, zone)
|
||||
assert.Equal(t, test.expected.recordName, recordName)
|
||||
|
|
|
@ -120,6 +120,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
defer d.inProgressMu.Unlock()
|
||||
|
||||
// add TXT record into authZone
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
recordID, err := d.addTXTRecord(domain, dns01.UnFqdn(authZone), name, value, d.config.TTL)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -146,6 +147,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
delete(d.activeRecords, fqdn)
|
||||
|
||||
// delete TXT record from authZone
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
return d.deleteTXTRecord(domain, recordID)
|
||||
}
|
||||
|
||||
|
|
|
@ -108,6 +108,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
err := d.wrapper.AddTXTRecord(fqdn, domain, value, d.config.TTL)
|
||||
if err != nil {
|
||||
return fmt.Errorf("ibmcloud: %w", err)
|
||||
|
@ -120,6 +121,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
err := d.wrapper.CleanupTXTRecord(fqdn, domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("ibmcloud: %w", err)
|
||||
|
|
|
@ -100,6 +100,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
_, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
err := d.deleteTxtRecord(domain, value)
|
||||
if err != nil {
|
||||
return fmt.Errorf("iij: %w", err)
|
||||
|
@ -113,6 +114,7 @@ func (d *DNSProvider) addTxtRecord(domain, value string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
owner, zone, err := splitDomain(domain, zones)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -100,7 +100,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zoneID, err := dpfapiutils.GetZoneIdFromServiceCode(context.Background(), d.client, d.config.ServiceCode)
|
||||
zoneID, err := dpfapiutils.GetZoneIdFromServiceCode(ctx, d.client, d.config.ServiceCode)
|
||||
if err != nil {
|
||||
return fmt.Errorf("iijdpf: failed to get zone id: %w", err)
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zoneID, err := dpfapiutils.GetZoneIdFromServiceCode(context.Background(), d.client, d.config.ServiceCode)
|
||||
zoneID, err := dpfapiutils.GetZoneIdFromServiceCode(ctx, d.client, d.config.ServiceCode)
|
||||
if err != nil {
|
||||
return fmt.Errorf("iijdpf: failed to get zone id: %w", err)
|
||||
}
|
||||
|
|
|
@ -112,6 +112,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
ikDomain, err := d.client.GetDomainByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("infomaniak: could not get domain %q: %w", domain, err)
|
||||
|
|
|
@ -115,6 +115,7 @@ func (d *DNSProvider) Present(domain, _, keyAuth string) error {
|
|||
return fmt.Errorf("ionos: failed to get zones: %w", err)
|
||||
}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
zone := findZone(zones, domain)
|
||||
if zone == nil {
|
||||
return errors.New("ionos: no matching zone found for domain")
|
||||
|
@ -156,6 +157,7 @@ func (d *DNSProvider) CleanUp(domain, _, keyAuth string) error {
|
|||
return fmt.Errorf("ionos: failed to get zones: %w", err)
|
||||
}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
zone := findZone(zones, domain)
|
||||
if zone == nil {
|
||||
return errors.New("ionos: no matching zone found for domain")
|
||||
|
|
|
@ -132,6 +132,7 @@ func (d *DNSProvider) Timeout() (time.Duration, time.Duration) {
|
|||
// Present creates a TXT record using the specified parameters.
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := d.getHostedZoneInfo(fqdn)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -87,6 +87,8 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
// Present creates a TXT record to fulfill the dns-01 challenge.
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
_, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
err := d.doRequest(domain, value, "REGIST")
|
||||
if err != nil {
|
||||
return fmt.Errorf("mydnsjp: %w", err)
|
||||
|
@ -97,6 +99,8 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
// CleanUp removes the TXT record matching the specified parameters.
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
_, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
err := d.doRequest(domain, value, "DELETE")
|
||||
if err != nil {
|
||||
return fmt.Errorf("mydnsjp: %w", err)
|
||||
|
|
|
@ -144,6 +144,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
|
||||
// Present installs a TXT record for the DNS challenge.
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
ch, err := newChallenge(domain, keyAuth)
|
||||
if err != nil {
|
||||
return fmt.Errorf("namecheap: %w", err)
|
||||
|
@ -179,6 +180,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
|
||||
// CleanUp removes a TXT record used for a previous DNS challenge.
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
ch, err := newChallenge(domain, keyAuth)
|
||||
if err != nil {
|
||||
return fmt.Errorf("namecheap: %w", err)
|
||||
|
|
|
@ -108,11 +108,13 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainDetails, err := d.client.GetDomain(&namecom.GetDomainRequest{DomainName: domain})
|
||||
if err != nil {
|
||||
return fmt.Errorf("namedotcom API call failed: %w", err)
|
||||
}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
request := &namecom.Record{
|
||||
DomainName: domain,
|
||||
Host: extractRecordName(fqdn, domainDetails.DomainName),
|
||||
|
@ -133,6 +135,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
records, err := d.getRecords(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("namedotcom: %w", err)
|
||||
|
@ -140,6 +143,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
|
||||
for _, rec := range records {
|
||||
if rec.Fqdn == fqdn && rec.Type == "TXT" {
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
request := &namecom.DeleteRecordRequest{
|
||||
DomainName: domain,
|
||||
ID: rec.ID,
|
||||
|
|
|
@ -89,7 +89,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zoneName, err := getZoneNameByDomain(domain)
|
||||
zoneName, err := getZoneNameByDomain(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("namesilo: %w", err)
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zoneName, err := getZoneNameByDomain(domain)
|
||||
zoneName, err := getZoneNameByDomain(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("namesilo: %w", err)
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
}
|
||||
|
||||
func getZoneNameByDomain(domain string) (string, error) {
|
||||
zone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
zone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to find zone for domain: %s, %w", domain, err)
|
||||
}
|
||||
|
|
|
@ -110,9 +110,9 @@ func (d *DNSProvider) Sequential() time.Duration {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("nearlyfreespeech: could not determine zone for domain %q: %w", domain, err)
|
||||
return fmt.Errorf("nearlyfreespeech: could not determine zone for domain %q: %w", fqdn, err)
|
||||
}
|
||||
|
||||
record := internal.Record{
|
||||
|
@ -134,9 +134,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("nearlyfreespeech: could not determine zone for domain %q: %w", domain, err)
|
||||
return fmt.Errorf("nearlyfreespeech: could not determine zone for domain %q: %w", fqdn, err)
|
||||
}
|
||||
|
||||
record := internal.Record{
|
||||
|
|
|
@ -91,8 +91,8 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
}
|
||||
|
||||
// Present creates a TXT record to fulfill the dns-01 challenge.
|
||||
func (d *DNSProvider) Present(domainName, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domainName, keyAuth)
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
|
@ -138,8 +138,8 @@ func (d *DNSProvider) Present(domainName, token, keyAuth string) error {
|
|||
}
|
||||
|
||||
// CleanUp removes the TXT record matching the specified parameters.
|
||||
func (d *DNSProvider) CleanUp(domainName, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domainName, keyAuth)
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
|
|
|
@ -137,9 +137,9 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
rootDomain, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
rootDomain, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("nicmanager: could not determine zone for domain %q: %w", domain, err)
|
||||
return fmt.Errorf("nicmanager: could not determine zone for domain %q: %w", fqdn, err)
|
||||
}
|
||||
|
||||
zone, err := d.client.GetZone(dns01.UnFqdn(rootDomain))
|
||||
|
@ -168,9 +168,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
rootDomain, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
rootDomain, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("nicmanager: could not determine zone for domain %q: %w", domain, err)
|
||||
return fmt.Errorf("nicmanager: could not determine zone for domain %q: %w", fqdn, err)
|
||||
}
|
||||
|
||||
zone, err := d.client.GetZone(dns01.UnFqdn(rootDomain))
|
||||
|
|
|
@ -15,11 +15,11 @@ import (
|
|||
// see: https://github.com/go-acme/lego/pull/850
|
||||
var mu sync.Mutex
|
||||
|
||||
func (d *DNSProvider) addTXTRecord(fqdn, domain, value string, ttl int) error {
|
||||
func (d *DNSProvider) addTXTRecord(fqdn, value string, ttl int) error {
|
||||
mu.Lock()
|
||||
defer mu.Unlock()
|
||||
|
||||
zone, err := d.getHostedZone(domain)
|
||||
zone, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w", err)
|
||||
}
|
||||
|
@ -43,11 +43,11 @@ func (d *DNSProvider) addTXTRecord(fqdn, domain, value string, ttl int) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (d *DNSProvider) cleanupTXTRecord(fqdn, domain, value string) error {
|
||||
func (d *DNSProvider) cleanupTXTRecord(fqdn, value string) error {
|
||||
mu.Lock()
|
||||
defer mu.Unlock()
|
||||
|
||||
zone, err := d.getHostedZone(domain)
|
||||
zone, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ func (d *DNSProvider) cleanupTXTRecord(fqdn, domain, value string) error {
|
|||
}
|
||||
|
||||
func (d *DNSProvider) getHostedZone(domain string) (*iaas.DNS, error) {
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -65,10 +65,10 @@ func TestDNSProvider_addAndCleanupRecords(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
|
||||
t.Run("addTXTRecord", func(t *testing.T) {
|
||||
err = p.addTXTRecord("test.example.com", "example.com", "dummyValue", 10)
|
||||
err = p.addTXTRecord("test.example.com.", "dummyValue", 10)
|
||||
require.NoError(t, err)
|
||||
|
||||
updZone, e := p.getHostedZone("example.com")
|
||||
updZone, e := p.getHostedZone("test.example.com.")
|
||||
require.NoError(t, e)
|
||||
require.NotNil(t, updZone)
|
||||
|
||||
|
@ -76,10 +76,10 @@ func TestDNSProvider_addAndCleanupRecords(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("cleanupTXTRecord", func(t *testing.T) {
|
||||
err = p.cleanupTXTRecord("test.example.com", "example.com", "dummyValue")
|
||||
err = p.cleanupTXTRecord("test.example.com.", "dummyValue")
|
||||
require.NoError(t, err)
|
||||
|
||||
updZone, e := p.getHostedZone("example.com")
|
||||
updZone, e := p.getHostedZone("test.example.com.")
|
||||
require.NoError(t, e)
|
||||
require.NotNil(t, updZone)
|
||||
|
||||
|
@ -111,7 +111,7 @@ func TestDNSProvider_concurrentAddAndCleanupRecords(t *testing.T) {
|
|||
|
||||
for i, p := range providers {
|
||||
go func(j int, client *DNSProvider) {
|
||||
err := client.addTXTRecord(fmt.Sprintf("test%d.example.com", j), "example.com", "dummyValue", 10)
|
||||
err := client.addTXTRecord(fmt.Sprintf("test%d.example.com.", j), "dummyValue", 10)
|
||||
require.NoError(t, err)
|
||||
wg.Done()
|
||||
}(i, p)
|
||||
|
@ -119,7 +119,7 @@ func TestDNSProvider_concurrentAddAndCleanupRecords(t *testing.T) {
|
|||
|
||||
wg.Wait()
|
||||
|
||||
updZone, err := providers[0].getHostedZone("example.com")
|
||||
updZone, err := providers[0].getHostedZone("example.com.")
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, updZone)
|
||||
|
||||
|
@ -131,7 +131,7 @@ func TestDNSProvider_concurrentAddAndCleanupRecords(t *testing.T) {
|
|||
|
||||
for i, p := range providers {
|
||||
go func(i int, client *DNSProvider) {
|
||||
err := client.cleanupTXTRecord(fmt.Sprintf("test%d.example.com", i), "example.com", "dummyValue")
|
||||
err := client.cleanupTXTRecord(fmt.Sprintf("test%d.example.com.", i), "dummyValue")
|
||||
require.NoError(t, err)
|
||||
wg.Done()
|
||||
}(i, p)
|
||||
|
@ -139,7 +139,7 @@ func TestDNSProvider_concurrentAddAndCleanupRecords(t *testing.T) {
|
|||
|
||||
wg.Wait()
|
||||
|
||||
updZone, err := providers[0].getHostedZone("example.com")
|
||||
updZone, err := providers[0].getHostedZone("example.com.")
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, updZone)
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
err := d.addTXTRecord(fqdn, domain, value, d.config.TTL)
|
||||
err := d.addTXTRecord(fqdn, value, d.config.TTL)
|
||||
if err != nil {
|
||||
return fmt.Errorf("sakuracloud: %w", err)
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
err := d.cleanupTXTRecord(fqdn, domain, value)
|
||||
err := d.cleanupTXTRecord(fqdn, value)
|
||||
if err != nil {
|
||||
return fmt.Errorf("sakuracloud: %w", err)
|
||||
}
|
||||
|
|
|
@ -121,6 +121,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
Comment: scw.StringPtr("used by lego"),
|
||||
}}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
req := &scwdomain.UpdateDNSZoneRecordsRequest{
|
||||
DNSZone: domain,
|
||||
Changes: []*scwdomain.RecordChange{{
|
||||
|
@ -147,6 +148,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
Data: scw.StringPtr(fmt.Sprintf(`%q`, value)),
|
||||
}
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
req := &scwdomain.UpdateDNSZoneRecordsRequest{
|
||||
DNSZone: domain,
|
||||
Changes: []*scwdomain.RecordChange{{
|
||||
|
|
|
@ -103,6 +103,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainObj, err := d.client.GetDomainByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("selectel: %w", err)
|
||||
|
@ -127,6 +128,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
recordName := dns01.UnFqdn(fqdn)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainObj, err := d.client.GetDomainByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("selectel: %w", err)
|
||||
|
|
|
@ -99,7 +99,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := getAuthZone(domain)
|
||||
authZone, err := getAuthZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("servercow: %w", err)
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := getAuthZone(domain)
|
||||
authZone, err := getAuthZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("servercow: %w", err)
|
||||
}
|
||||
|
@ -203,7 +203,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
}
|
||||
|
||||
func getAuthZone(domain string) (string, error) {
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("could not find zone for domain %q: %w", domain, err)
|
||||
}
|
||||
|
|
|
@ -91,8 +91,8 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
|||
}
|
||||
|
||||
// Present creates a TXT record using the specified parameters.
|
||||
func (d *DNSProvider) Present(domainName, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domainName, keyAuth)
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
err := d.client.SetRecord(dns01.UnFqdn(fqdn), value, d.config.TTL)
|
||||
if err != nil {
|
||||
|
@ -103,8 +103,8 @@ func (d *DNSProvider) Present(domainName, token, keyAuth string) error {
|
|||
}
|
||||
|
||||
// CleanUp removes the TXT records matching the specified parameters.
|
||||
func (d *DNSProvider) CleanUp(domainName, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domainName, keyAuth)
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
err := d.client.SetRecord(dns01.UnFqdn(fqdn), "_", d.config.TTL)
|
||||
if err != nil {
|
||||
|
|
|
@ -50,8 +50,7 @@ func (e *ErrorResponse) Error() string {
|
|||
|
||||
// https://developer.stackpath.com/en/api/dns/#operation/GetZones
|
||||
func (d *DNSProvider) getZones(domain string) (*Zone, error) {
|
||||
domain = dns01.UnFqdn(domain)
|
||||
tld, err := publicsuffix.EffectiveTLDPlusOne(domain)
|
||||
tld, err := publicsuffix.EffectiveTLDPlusOne(dns01.UnFqdn(domain))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -113,13 +113,13 @@ func getOathClient(config *Config) *http.Client {
|
|||
|
||||
// Present creates a TXT record to fulfill the dns-01 challenge.
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
zone, err := d.getZones(domain)
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := d.getZones(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("stackpath: %w", err)
|
||||
}
|
||||
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
record := Record{
|
||||
Name: extractRecordName(fqdn, zone.Domain),
|
||||
Type: "TXT",
|
||||
|
@ -132,12 +132,13 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
|
||||
// CleanUp removes the TXT record matching the specified parameters.
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
zone, err := d.getZones(domain)
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := d.getZones(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("stackpath: %w", err)
|
||||
}
|
||||
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
recordName := extractRecordName(fqdn, zone.Domain)
|
||||
|
||||
records, err := d.getZoneRecords(recordName, zone)
|
||||
|
|
|
@ -32,7 +32,7 @@ func (d *DNSProvider) getHostedZone(domain string) (*dnspod.DomainListItem, erro
|
|||
request.Offset = common.Int64Ptr(int64(len(domains)))
|
||||
}
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := d.getHostedZone(domain)
|
||||
zone, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("tencentcloud: failed to get hosted zone: %w", err)
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
zone, err := d.getHostedZone(domain)
|
||||
zone, err := d.getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("tencentcloud: failed to get hosted zone: %w", err)
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("vercel: could not determine zone for domain %q: %w", domain, err)
|
||||
}
|
||||
|
|
|
@ -139,6 +139,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
// CleanUp removes the TXT record matching the specified parameters.
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := dns01.FindZoneByFqdn(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("versio: %w", err)
|
||||
|
|
|
@ -103,6 +103,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
|||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainObj, err := d.client.GetDomainByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("vscale: %w", err)
|
||||
|
@ -127,6 +128,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
recordName := dns01.UnFqdn(fqdn)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
domainObj, err := d.client.GetDomainByName(domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("vscale: %w", err)
|
||||
|
|
|
@ -99,6 +99,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
zoneDomain, err := d.getHostedZone(ctx, domain)
|
||||
if err != nil {
|
||||
return fmt.Errorf("vultr: %w", err)
|
||||
|
@ -127,6 +128,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
|
||||
fqdn, _ := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
// TODO(ldez) replace domain by FQDN to follow CNAME.
|
||||
zoneDomain, records, err := d.findTxtRecords(ctx, domain, fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("vultr: %w", err)
|
||||
|
|
|
@ -112,7 +112,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
Destination: value,
|
||||
}
|
||||
|
||||
authZone, err := getHostedZone(domain)
|
||||
authZone, err := getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("zoneee: %w", err)
|
||||
}
|
||||
|
@ -126,9 +126,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
|||
|
||||
// CleanUp removes the TXT record previously created.
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
_, value := dns01.GetRecord(domain, keyAuth)
|
||||
fqdn, value := dns01.GetRecord(domain, keyAuth)
|
||||
|
||||
authZone, err := getHostedZone(domain)
|
||||
authZone, err := getHostedZone(fqdn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("zoneee: %w", err)
|
||||
}
|
||||
|
@ -157,11 +157,10 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
|||
}
|
||||
|
||||
func getHostedZone(domain string) (string, error) {
|
||||
authZone, err := dns01.FindZoneByFqdn(dns01.ToFqdn(domain))
|
||||
authZone, err := dns01.FindZoneByFqdn(domain)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
zoneName := dns01.UnFqdn(authZone)
|
||||
return zoneName, nil
|
||||
return dns01.UnFqdn(authZone), nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue