修复1panel网站部署,优化申请证书

pull/79/head
zhangchenhao 2025-05-13 12:48:27 +08:00
parent 9d9e707e68
commit ddf6412d38
2 changed files with 66 additions and 16 deletions

View File

@ -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
}

View File

@ -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
}