mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/1Panel-dev/1Panel.git
synced 2026-09-20 08:03:55 +08:00
feat: add acme-dns provider for ssl dns (#10464)
Refs https://github.com/1Panel-dev/1Panel/issues/10048
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -248,6 +248,10 @@ export const DNSTypes = [
|
||||
label: 'OVH',
|
||||
value: 'Ovh',
|
||||
},
|
||||
{
|
||||
label: 'Acme DNS',
|
||||
value: 'AcmeDNS',
|
||||
},
|
||||
{
|
||||
label: i18n.global.t('website.volcengine'),
|
||||
value: 'Volcengine',
|
||||
|
||||
@@ -148,6 +148,14 @@
|
||||
<el-input v-model.trim="account.authorization['accessToken']"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div v-if="account.type === 'AcmeDNS'">
|
||||
<el-form-item label="API BASE" prop="authorization.endpoint" :rules="[Rules.requiredInput]">
|
||||
<el-input v-model.trim="account.authorization['endpoint']"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="BASE URL" prop="authorization.baseURL" :rules="[Rules.requiredInput]">
|
||||
<el-input v-model.trim="account.authorization['baseURL']"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
Reference in New Issue
Block a user