diff --git a/backend/internal/cert/apply/apply.go b/backend/internal/cert/apply/apply.go index 8c129ab..7ecca0f 100644 --- a/backend/internal/cert/apply/apply.go +++ b/backend/internal/cert/apply/apply.go @@ -103,6 +103,53 @@ func Apply(cfg map[string]any, logger *public.Logger) (map[string]any, error) { default: return nil, fmt.Errorf("参数错误:provider_id") } + var NameServers []string + if cfg["name_server"] == nil { + NameServers = []string{ + "8.8.8.8:53", + "1.1.1.1:53", + } + } else { + if nameServerStr, ok := cfg["name_server"].(string); ok { + NameServers = strings.Split(nameServerStr, ",") + for i := range NameServers { + NameServers[i] = strings.TrimSpace(NameServers[i]) + } + } else { + return nil, fmt.Errorf("参数错误:name_server") + } + } + + var skipCheck bool + if cfg["skip_check"] == nil { + skipCheck = true + } else { + switch v := cfg["skip_check"].(type) { + case int: + if v > 0 { + skipCheck = true + } else { + skipCheck = false + } + case float64: + if v > 0 { + skipCheck = true + } else { + skipCheck = false + } + case string: + if v == "true" || v == "1" { + skipCheck = true + } else { + skipCheck = false + } + case bool: + skipCheck = v + default: + return nil, fmt.Errorf("参数错误:skip_check") + } + } + domainArr := strings.Split(domains, ",") for i := range domainArr { domainArr[i] = strings.TrimSpace(domainArr[i]) @@ -232,16 +279,19 @@ func Apply(cfg map[string]any, logger *public.Logger) (map[string]any, error) { return nil, fmt.Errorf("创建 DNS provider 失败: %v", err) } - err = client.Challenge.SetDNS01Provider(provider, - dns01.WrapPreCheck(func(domain, fqdn, value string, check dns01.PreCheckFunc) (bool, error) { - // 跳过预检查 - return true, nil - }), - dns01.AddRecursiveNameservers([]string{ - "8.8.8.8:53", - "1.1.1.1:53", - }), - ) + if skipCheck { + // 跳过预检查 + err = client.Challenge.SetDNS01Provider(provider, + dns01.WrapPreCheck(func(domain, fqdn, value string, check dns01.PreCheckFunc) (bool, error) { + return true, nil + }), + dns01.AddRecursiveNameservers(NameServers), + ) + } else { + err = client.Challenge.SetDNS01Provider(provider, + dns01.AddRecursiveNameservers(NameServers), + ) + } if err != nil { return nil, err } diff --git a/backend/internal/cert/deploy/1panel.go b/backend/internal/cert/deploy/1panel.go index 0acd122..19f9b43 100644 --- a/backend/internal/cert/deploy/1panel.go +++ b/backend/internal/cert/deploy/1panel.go @@ -95,7 +95,7 @@ func Request1panel(data *map[string]any, method, providerID, requestUrl string) return nil, fmt.Errorf("证书部署失败") } if code != 200 { - msg, ok := res["msg"].(string) + msg, ok := res["message"].(string) if !ok { return nil, fmt.Errorf("证书部署失败") } @@ -184,7 +184,7 @@ func Deploy1panelSite(cfg map[string]any) error { if !ok { return fmt.Errorf("获取网站参数失败: data") } - SSLProtocol, ok := siteData["SSLProtocol"].(string) + SSLProtocol, ok := siteData["SSLProtocol"].([]any) if !ok { return fmt.Errorf("获取网站参数失败: data.SSLProtocol") } @@ -216,10 +216,10 @@ func Deploy1panelSite(cfg map[string]any) error { "enable": enable, "hsts": hsts, "httpConfig": httpConfig, - // "importType": "paste", - "type": "manual", - "websiteId": websiteId, + "importType": "paste", + "type": "manual", + "websiteId": websiteId, } _, err = Request1panel(&data, "POST", providerID, fmt.Sprintf("api/v1/websites/%s/https", siteId)) - return nil + return err }