From b3cbba935bb78afeca78f9c4e15057736d052397 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 8 Sep 2021 18:23:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87DNS=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E7=94=B3=E8=AF=B7ACME=E8=AF=81=E4=B9=A6=E6=97=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/acme/dns_provider.go | 18 +++++++++++------- internal/acme/request.go | 2 +- internal/acme/request_test.go | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/acme/dns_provider.go b/internal/acme/dns_provider.go index 5d10743a..dfa32151 100644 --- a/internal/acme/dns_provider.go +++ b/internal/acme/dns_provider.go @@ -9,28 +9,32 @@ import ( ) type DNSProvider struct { - raw dnsclients.ProviderInterface + raw dnsclients.ProviderInterface + dnsDomain string } -func NewDNSProvider(raw dnsclients.ProviderInterface) *DNSProvider { - return &DNSProvider{raw: raw} +func NewDNSProvider(raw dnsclients.ProviderInterface, dnsDomain string) *DNSProvider { + return &DNSProvider{ + raw: raw, + dnsDomain: dnsDomain, + } } func (this *DNSProvider) Present(domain, token, keyAuth string) error { fqdn, value := dns01.GetRecord(domain, keyAuth) // 设置记录 - index := strings.Index(fqdn, "."+domain) + index := strings.Index(fqdn, "."+this.dnsDomain) if index < 0 { return errors.New("invalid fqdn value") } recordName := fqdn[:index] - record, err := this.raw.QueryRecord(domain, recordName, dnstypes.RecordTypeTXT) + record, err := this.raw.QueryRecord(this.dnsDomain, recordName, dnstypes.RecordTypeTXT) if err != nil { return errors.New("query DNS record failed: " + err.Error()) } if record == nil { - err = this.raw.AddRecord(domain, &dnstypes.Record{ + err = this.raw.AddRecord(this.dnsDomain, &dnstypes.Record{ Id: "", Name: recordName, Type: dnstypes.RecordTypeTXT, @@ -41,7 +45,7 @@ func (this *DNSProvider) Present(domain, token, keyAuth string) error { return errors.New("create DNS record failed: " + err.Error()) } } else { - err = this.raw.UpdateRecord(domain, record, &dnstypes.Record{ + err = this.raw.UpdateRecord(this.dnsDomain, record, &dnstypes.Record{ Name: recordName, Type: dnstypes.RecordTypeTXT, Value: value, diff --git a/internal/acme/request.go b/internal/acme/request.go index ac6ffa17..f8b27d64 100644 --- a/internal/acme/request.go +++ b/internal/acme/request.go @@ -92,7 +92,7 @@ func (this *Request) runDNS() (certData []byte, keyData []byte, err error) { } } - err = client.Challenge.SetDNS01Provider(NewDNSProvider(this.task.DNSProvider)) + err = client.Challenge.SetDNS01Provider(NewDNSProvider(this.task.DNSProvider, this.task.DNSDomain)) if err != nil { return nil, nil, err } diff --git a/internal/acme/request_test.go b/internal/acme/request_test.go index f55beafd..0dc9e1a2 100644 --- a/internal/acme/request_test.go +++ b/internal/acme/request_test.go @@ -42,7 +42,7 @@ func TestRequest_Run_DNS(t *testing.T) { AuthType: AuthTypeDNS, DNSProvider: dnsProvider, DNSDomain: "yun4s.cn", - Domains: []string{"yun4s.cn"}, + Domains: []string{"www.yun4s.cn"}, }) certData, keyData, err := req.Run() if err != nil {