diff --git a/backend/utils/ssl/client.go b/backend/utils/ssl/client.go index 24331221a..a62b9e8d3 100644 --- a/backend/utils/ssl/client.go +++ b/backend/utils/ssl/client.go @@ -19,6 +19,7 @@ import ( "github.com/go-acme/lego/v4/lego" "github.com/go-acme/lego/v4/providers/dns/alidns" "github.com/go-acme/lego/v4/providers/dns/clouddns" + "github.com/go-acme/lego/v4/providers/dns/cloudns" "github.com/go-acme/lego/v4/providers/dns/cloudflare" "github.com/go-acme/lego/v4/providers/dns/dnspod" "github.com/go-acme/lego/v4/providers/dns/godaddy" @@ -75,6 +76,7 @@ const ( Volcengine DnsType = "Volcengine" CloudFlare DnsType = "CloudFlare" CloudDns DnsType = "CloudDns" + ClouDNS DnsType = "ClouDNS" FreeMyIP DnsType = "FreeMyIP" NameSilo DnsType = "NameSilo" NameCheap DnsType = "NameCheap" @@ -98,6 +100,9 @@ type DNSParam struct { Region string `json:"region"` ClientID string `json:"clientID"` Password string `json:"password"` + AuthID string `json:"authID"` + SubAuthID string `json:"subAuthID"` + AuthPassword string `json:"authPassword"` } var ( @@ -158,6 +163,15 @@ func (c *AcmeClient) UseDns(dnsType DnsType, params string, websiteSSL model.Web clouddnsConfig.PollingInterval = pollingInterval clouddnsConfig.TTL = ttl p, err = clouddns.NewDNSProviderConfig(clouddnsConfig) + case ClouDNS: + cloudnsConfig := cloudns.NewDefaultConfig() + cloudnsConfig.AuthID = param.AuthID + cloudnsConfig.SubAuthID = param.SubAuthID + cloudnsConfig.AuthPassword = param.AuthPassword + cloudnsConfig.PropagationTimeout = propagationTimeout + cloudnsConfig.PollingInterval = pollingInterval + cloudnsConfig.TTL = ttl + p, err = clouddns.NewDNSProviderConfig(cloudnsConfig) case FreeMyIP: freeMyIpConfig := freemyip.NewDefaultConfig() freeMyIpConfig.Token = param.Token diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts index 6010c4f8d..059d8c6e7 100644 --- a/frontend/src/global/mimetype.ts +++ b/frontend/src/global/mimetype.ts @@ -184,6 +184,10 @@ export const DNSTypes = [ label: 'CloudDNS', value: 'CloudDns', }, + { + label: 'ClouDNS', + value: 'ClouDNS', + }, { label: 'NameSilo', value: 'NameSilo', 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 6b5d6c7a1..26e89a702 100644 --- a/frontend/src/views/website/ssl/dns-account/create/index.vue +++ b/frontend/src/views/website/ssl/dns-account/create/index.vue @@ -97,6 +97,17 @@ +
+ + + + + + + + + +
({ clientID: [Rules.requiredInput], email: [Rules.email], password: [Rules.requiredInput], + authPassword: [Rules.requiredInput], }, }); const account = ref({ @@ -217,6 +229,12 @@ const submit = async (formEl: FormInstance | undefined) => { if (!valid) { return; } + if (account.value.type === 'ClouDNS') { + if (!account.value.authorization.authID && !account.value.authorization.subAuthID) { + MsgError('Please input Auth ID or Sub Auth ID'); + return; + } + } loading.value = true; if (accountData.value.mode === 'edit') {