From c3a38aa008eaf28058381e334a0db0c761653091 Mon Sep 17 00:00:00 2001 From: zhangchenhao Date: Fri, 30 May 2025 11:08:03 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E3=80=90?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E3=80=91=E6=96=B0=E5=A2=9E=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=88=B0=E6=97=A7=E7=89=88=E6=9C=AC=E5=AE=9D=E5=A1=94=E7=BD=91?= =?UTF-8?q?=E7=AB=99=E5=92=8Cwin=E7=89=88=E5=AE=9D=E5=A1=94=E7=BD=91?= =?UTF-8?q?=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/cert/deploy/btpanel.go | 41 +++++++++++++++++++++++-- backend/internal/cert/deploy/deploy.go | 3 ++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/backend/internal/cert/deploy/btpanel.go b/backend/internal/cert/deploy/btpanel.go index 337277c..06193de 100644 --- a/backend/internal/cert/deploy/btpanel.go +++ b/backend/internal/cert/deploy/btpanel.go @@ -252,11 +252,48 @@ func BtPanelSiteList(providerID string) ([]response.AccessSiteList, error) { if !ok { return nil, fmt.Errorf("获取网站列表失败: 数据格式错误") } - + for _, site := range sites { result = append(result, response.AccessSiteList{Id: "", SiteName: site.(string), Domain: []string{}}) } - + //fmt.Printf("siteList:%#v\n", result) return result, nil } +func DeployBtSingleSite(cfg map[string]any) error { + cert, ok := cfg["certificate"].(map[string]any) + if !ok { + return fmt.Errorf("证书不存在") + } + // 设置证书 + keyPem, ok := cert["key"].(string) + if !ok { + return fmt.Errorf("证书错误:key") + } + certPem, ok := cert["cert"].(string) + if !ok { + return fmt.Errorf("证书错误:cert") + } + var providerID string + switch v := cfg["provider_id"].(type) { + case float64: + providerID = strconv.Itoa(int(v)) + case string: + providerID = v + default: + return fmt.Errorf("参数错误:provider_id") + } + siteName, ok := cfg["siteName"].(string) + if !ok { + return fmt.Errorf("参数错误:siteName") + } + data := url.Values{} + data.Set("key", keyPem) + data.Set("csr", certPem) + data.Set("siteName", siteName) + _, err := RequestBt(&data, "POST", providerID, "/site?action=SetSSL") + if err != nil { + return fmt.Errorf("证书部署失败: %v", err) + } + return nil +} diff --git a/backend/internal/cert/deploy/deploy.go b/backend/internal/cert/deploy/deploy.go index 802eea7..7689e34 100644 --- a/backend/internal/cert/deploy/deploy.go +++ b/backend/internal/cert/deploy/deploy.go @@ -20,6 +20,9 @@ func Deploy(cfg map[string]any, logger *public.Logger) error { case "btpanel-dockersite": logger.Debug("部署到宝塔Docker面板网站...") return DeployBtDockerSite(cfg) + case "btpanel-singlesite": + logger.Debug("部署到旧版本宝塔单个站点...") + return DeployBtSingleSite(cfg) case "btwaf-site": logger.Debug("部署到宝塔WAF面板网站...") return DeployBtWafSite(cfg)