diff --git a/agent/go.mod b/agent/go.mod index b79cac82a35a..785795341a87 100644 --- a/agent/go.mod +++ b/agent/go.mod @@ -177,6 +177,7 @@ require ( github.com/ncruces/go-strftime v0.1.9 // indirect github.com/nrdcg/dnspod-go v0.4.0 // indirect github.com/nrdcg/freemyip v0.3.0 // indirect + github.com/nrdcg/goacmedns v0.2.0 // indirect github.com/nrdcg/mailinabox v0.2.0 // indirect github.com/nrdcg/namesilo v0.2.1 // indirect github.com/nwaples/rardecode/v2 v2.0.0-beta.2 // indirect diff --git a/agent/go.sum b/agent/go.sum index f5995e01da64..493464ccd561 100644 --- a/agent/go.sum +++ b/agent/go.sum @@ -714,6 +714,8 @@ github.com/nrdcg/dnspod-go v0.4.0 h1:c/jn1mLZNKF3/osJ6mz3QPxTudvPArXTjpkmYj0uK6U github.com/nrdcg/dnspod-go v0.4.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgPTGKr6KQ= github.com/nrdcg/freemyip v0.3.0 h1:0D2rXgvLwe2RRaVIjyUcQ4S26+cIS2iFwnhzDsEuuwc= github.com/nrdcg/freemyip v0.3.0/go.mod h1:c1PscDvA0ukBF0dwelU/IwOakNKnVxetpAQ863RMJoM= +github.com/nrdcg/goacmedns v0.2.0 h1:ADMbThobzEMnr6kg2ohs4KGa3LFqmgiBA22/6jUWJR0= +github.com/nrdcg/goacmedns v0.2.0/go.mod h1:T5o6+xvSLrQpugmwHvrSNkzWht0UGAwj2ACBMhh73Cg= github.com/nrdcg/mailinabox v0.2.0 h1:IKq8mfKiVwNW2hQii/ng1dJ4yYMMv3HAP3fMFIq2CFk= github.com/nrdcg/mailinabox v0.2.0/go.mod h1:0yxqeYOiGyxAu7Sb94eMxHPIOsPYXAjTeA9ZhePhGnc= github.com/nrdcg/namesilo v0.2.1 h1:kLjCjsufdW/IlC+iSfAqj0iQGgKjlbUUeDJio5Y6eMg= diff --git a/agent/utils/ssl/dns_provider.go b/agent/utils/ssl/dns_provider.go index b1d03bcc7a53..3fd092cdb676 100644 --- a/agent/utils/ssl/dns_provider.go +++ b/agent/utils/ssl/dns_provider.go @@ -3,6 +3,7 @@ package ssl import ( "encoding/json" "github.com/go-acme/lego/v4/challenge" + "github.com/go-acme/lego/v4/providers/dns/acmedns" "github.com/go-acme/lego/v4/providers/dns/alidns" "github.com/go-acme/lego/v4/providers/dns/baiducloud" "github.com/go-acme/lego/v4/providers/dns/clouddns" @@ -51,6 +52,7 @@ const ( Dynu DnsType = "Dynu" BaiduCloud DnsType = "BaiduCloud" Ovh DnsType = "Ovh" + AcmeDNS DnsType = "AcmeDNS" ) type DNSParam struct { @@ -72,6 +74,7 @@ type DNSParam struct { AuthPassword string `json:"authPassword"` Endpoint string `json:"endpoint"` AccessToken string `json:"accessToken"` + BaseURL string `json:"baseURL"` } var ( @@ -258,6 +261,11 @@ func getDNSProviderConfig(dnsType DnsType, params string) (challenge.Provider, e config.PollingInterval = pollingInterval config.TTL = ttl p, err = ovh.NewDNSProviderConfig(config) + case AcmeDNS: + config := acmedns.NewDefaultConfig() + config.APIBase = param.Endpoint + config.StorageBaseURL = param.BaseURL + p, err = acmedns.NewDNSProviderConfig(config) } if err != nil { diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts index 5d557702af07..7d5ff9f648f5 100644 --- a/frontend/src/global/mimetype.ts +++ b/frontend/src/global/mimetype.ts @@ -248,6 +248,10 @@ export const DNSTypes = [ label: 'OVH', value: 'Ovh', }, + { + label: 'Acme DNS', + value: 'AcmeDNS', + }, { label: i18n.global.t('website.volcengine'), value: 'Volcengine', diff --git a/frontend/src/views/website/ssl/dns-account/create/index.vue b/frontend/src/views/website/ssl/dns-account/create/index.vue index 459f40111f32..447f8560fe52 100644 --- a/frontend/src/views/website/ssl/dns-account/create/index.vue +++ b/frontend/src/views/website/ssl/dns-account/create/index.vue @@ -148,6 +148,14 @@ +
+ + + + + + +