diff --git a/agent/utils/ssl/acme.go b/agent/utils/ssl/acme.go index af8830b22..816c8b300 100644 --- a/agent/utils/ssl/acme.go +++ b/agent/utils/ssl/acme.go @@ -243,9 +243,8 @@ func createHTTPClientWithProxy(proxyURL, username, password string) *http.Client TLSHandshakeTimeout: 60 * time.Second, ResponseHeaderTimeout: 60 * time.Second, TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, - //ServerName: os.Getenv("LEGO_CA_SERVER_NAME"), - //RootCAs: initCertPool(), + ServerName: os.Getenv("LEGO_CA_SERVER_NAME"), + RootCAs: initCertPool(), }, }, } diff --git a/agent/utils/ssl/client.go b/agent/utils/ssl/client.go index d84a08111..fc79d0b1e 100644 --- a/agent/utils/ssl/client.go +++ b/agent/utils/ssl/client.go @@ -4,10 +4,19 @@ import ( "crypto" "encoding/json" "github.com/1Panel-dev/1Panel/agent/app/dto" + "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/cloudflare" + "github.com/go-acme/lego/v4/providers/dns/dnspod" "github.com/go-acme/lego/v4/providers/dns/freemyip" + "github.com/go-acme/lego/v4/providers/dns/godaddy" "github.com/go-acme/lego/v4/providers/dns/huaweicloud" + "github.com/go-acme/lego/v4/providers/dns/namecheap" + "github.com/go-acme/lego/v4/providers/dns/namedotcom" + "github.com/go-acme/lego/v4/providers/dns/namesilo" "github.com/go-acme/lego/v4/providers/dns/rainyun" + "github.com/go-acme/lego/v4/providers/dns/tencentcloud" + "github.com/go-acme/lego/v4/providers/dns/vercel" "github.com/go-acme/lego/v4/providers/dns/volcengine" "os" "strings" @@ -20,14 +29,6 @@ import ( "github.com/go-acme/lego/v4/challenge" "github.com/go-acme/lego/v4/challenge/dns01" "github.com/go-acme/lego/v4/lego" - "github.com/go-acme/lego/v4/providers/dns/alidns" - "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" - "github.com/go-acme/lego/v4/providers/dns/namecheap" - "github.com/go-acme/lego/v4/providers/dns/namedotcom" - "github.com/go-acme/lego/v4/providers/dns/namesilo" - "github.com/go-acme/lego/v4/providers/dns/tencentcloud" "github.com/go-acme/lego/v4/providers/http/webroot" "github.com/go-acme/lego/v4/registration" "github.com/pkg/errors" @@ -97,6 +98,7 @@ const ( Volcengine DnsType = "Volcengine" HuaweiCloud DnsType = "HuaweiCloud" FreeMyIP DnsType = "FreeMyIP" + Vercel DnsType = "Vercel" ) type DNSParam struct { @@ -121,17 +123,15 @@ var ( dnsTimeOut = 30 * time.Minute ) -func (c *AcmeClient) UseDns(dnsType DnsType, params string, websiteSSL model.WebsiteSSL) error { +func getDNSProviderConfig(dnsType DnsType, params string) (challenge.Provider, error) { var ( param DNSParam p challenge.Provider err error ) - - if err = json.Unmarshal([]byte(params), ¶m); err != nil { - return err + if err := json.Unmarshal([]byte(params), ¶m); err != nil { + return nil, err } - switch dnsType { case DnsPod: dnsPodConfig := dnspod.NewDefaultConfig() @@ -234,7 +234,21 @@ func (c *AcmeClient) UseDns(dnsType DnsType, params string, websiteSSL model.Web freeMyIpConfig.PropagationTimeout = propagationTimeout freeMyIpConfig.PollingInterval = pollingInterval p, err = freemyip.NewDNSProviderConfig(freeMyIpConfig) + case Vercel: + vercelConfig := vercel.NewDefaultConfig() + vercelConfig.AuthToken = param.Token + vercelConfig.PropagationTimeout = propagationTimeout + vercelConfig.PollingInterval = pollingInterval + p, err = vercel.NewDNSProviderConfig(vercelConfig) } + if err != nil { + return nil, err + } + return p, nil +} + +func (c *AcmeClient) UseDns(dnsType DnsType, params string, websiteSSL model.WebsiteSSL) error { + p, err := getDNSProviderConfig(dnsType, params) if err != nil { return err } diff --git a/frontend/src/global/mimetype.ts b/frontend/src/global/mimetype.ts index dbaf5175a..853f1266c 100644 --- a/frontend/src/global/mimetype.ts +++ b/frontend/src/global/mimetype.ts @@ -188,6 +188,10 @@ export const DNSTypes = [ label: 'Cloudflare', value: 'CloudFlare', }, + { + label: 'Vercel', + value: 'Vercel', + }, { label: 'CloudDNS', value: 'CloudDns', 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 544404479..0704f9383 100644 --- a/frontend/src/views/website/ssl/dns-account/create/index.vue +++ b/frontend/src/views/website/ssl/dns-account/create/index.vue @@ -102,7 +102,7 @@ -
+