修改esa部署和多吉云cdn部署

pull/236/head
v-me-50 2025-06-16 18:41:41 +08:00
parent 1d5cd9ca03
commit 426b358d56
3 changed files with 41 additions and 17 deletions

View File

@ -204,6 +204,9 @@ func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}
if ca == "custom" { if ca == "custom" {
whereSql += `and type not in ('Let's Encrypt','buypass', 'google', 'sslcom', 'zerossl')` whereSql += `and type not in ('Let's Encrypt','buypass', 'google', 'sslcom', 'zerossl')`
} else { } else {
if ca == "letsencrypt" {
ca = "Let's Encrypt"
}
whereSql += " and type=?" whereSql += " and type=?"
whereArgs = append(whereArgs, ca) whereArgs = append(whereArgs, ca)
} }
@ -217,6 +220,7 @@ func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}
data[i]["ca"] = data[i]["type"] data[i]["ca"] = data[i]["type"]
delete(data[i], "private_key") delete(data[i], "private_key")
delete(data[i], "reg") delete(data[i], "reg")
delete(data[i], "type")
} }
return data, int(count), nil return data, int(count), nil

View File

@ -87,11 +87,11 @@ func DeployAliyunESA(cfg map[string]any) error {
if err != nil { if err != nil {
return fmt.Errorf("创建 ESA 客户端失败: %w", err) return fmt.Errorf("创建 ESA 客户端失败: %w", err)
} }
certPEM, ok := cert["cert_pem"].(string) certPEM, ok := cert["cert"].(string)
if !ok { if !ok {
return fmt.Errorf("证书内容不存在或格式错误") return fmt.Errorf("证书内容不存在或格式错误")
} }
privkeyPEM, ok := cert["privkey_pem"].(string) privkeyPEM, ok := cert["key"].(string)
if !ok { if !ok {
return fmt.Errorf("私钥内容不存在或格式错误") return fmt.Errorf("私钥内容不存在或格式错误")
} }

View File

@ -1,6 +1,7 @@
package doge package doge
import ( import (
"ALLinSSL/backend/internal/access"
"ALLinSSL/backend/public" "ALLinSSL/backend/public"
"crypto/hmac" "crypto/hmac"
"crypto/sha1" "crypto/sha1"
@ -10,6 +11,7 @@ import (
"io" "io"
"net/http" "net/http"
"net/url" "net/url"
"strconv"
"strings" "strings"
) )
@ -26,36 +28,54 @@ func NewAuth(accessKey, secretKey string) *Auth {
} }
func DeployCdn(cfg map[string]any) error { func DeployCdn(cfg map[string]any) error {
if cfg == nil { cert, ok := cfg["certificate"].(map[string]any)
return fmt.Errorf("config cannot be nil") if !ok {
return fmt.Errorf("证书不存在")
} }
certStr, ok := cfg["cert"].(string) var providerID string
if !ok || certStr == "" { switch v := cfg["provider_id"].(type) {
return fmt.Errorf("cert is required and must be a string") case float64:
providerID = strconv.Itoa(int(v))
case string:
providerID = v
default:
return fmt.Errorf("参数错误provider_id")
} }
keyStr, ok := cfg["key"].(string) //
if !ok || keyStr == "" { providerData, err := access.GetAccess(providerID)
return fmt.Errorf("key is required and must be a string") if err != nil {
return err
} }
accessKey, ok := cfg["access_key"].(string) providerConfigStr, ok := providerData["config"].(string)
if !ok || accessKey == "" { if !ok {
return fmt.Errorf("access_key is required and must be a string") return fmt.Errorf("api配置错误")
} }
secretKey, ok := cfg["secret_key"].(string) // 解析 JSON 配置
if !ok || secretKey == "" { var providerConfig map[string]string
return fmt.Errorf("secret_key is required and must be a string") err = json.Unmarshal([]byte(providerConfigStr), &providerConfig)
if err != nil {
return err
} }
domain, ok := cfg["domain"].(string) domain, ok := cfg["domain"].(string)
if !ok || domain == "" { if !ok || domain == "" {
return fmt.Errorf("domain is required and must be a string") return fmt.Errorf("domain is required and must be a string")
} }
certStr, ok := cert["cert"].(string)
if !ok || certStr == "" {
return fmt.Errorf("cert is required and must be a string")
}
keyStr, ok := cert["key"].(string)
if !ok || keyStr == "" {
return fmt.Errorf("key is required and must be a string")
}
sha256, err := public.GetSHA256(certStr) sha256, err := public.GetSHA256(certStr)
if err != nil { if err != nil {
return fmt.Errorf("failed to get SHA256 of cert: %w", err) return fmt.Errorf("failed to get SHA256 of cert: %w", err)
} }
note := fmt.Sprintf("allinssl-%s", sha256) note := fmt.Sprintf("allinssl-%s", sha256)
a := NewAuth(accessKey, secretKey) a := NewAuth(providerConfig["access_key"], providerConfig["secret_key"])
// 检查证书是否已存在于 CDN // 检查证书是否已存在于 CDN
certList, err := a.listCertFromCdn() certList, err := a.listCertFromCdn()
if err != nil { if err != nil {