From 49486297f871f159d9432305b2b19a292e85e256 Mon Sep 17 00:00:00 2001 From: v-me-50 Date: Wed, 14 Jan 2026 10:39:51 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E8=B0=83=E6=95=B4=E3=80=91litessl?= =?UTF-8?q?=E8=8E=B7=E5=8F=96eab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/cert/apply/apply.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/backend/internal/cert/apply/apply.go b/backend/internal/cert/apply/apply.go index 5f82496..0945bea 100644 --- a/backend/internal/cert/apply/apply.go +++ b/backend/internal/cert/apply/apply.go @@ -298,7 +298,6 @@ func GetEabFromBt(httpClient *http.Client) (map[string]any, error) { if err != nil { return nil, err } - req.Header.Set("Content-Type", "application/json") if httpClient == nil { httpClient = &http.Client{} } @@ -315,16 +314,20 @@ func GetEabFromBt(httpClient *http.Client) (map[string]any, error) { if err != nil { return nil, fmt.Errorf("解析BT EAB信息失败:%v", err) } - res, ok := result["res"].(map[string]map[string]any) + res, ok := result["res"].(map[string]any) if !ok { return nil, fmt.Errorf("BT EAB信息格式错误,缺少res字段") } - if res["data"]["eab_kid"] == nil || res["data"]["eab_hmac"] == nil { + data, ok = res["data"].(map[string]any) + if !ok { + return nil, fmt.Errorf("BT EAB信息格式错误,缺少data字段") + } + if data["eab_kid"] == nil || data["eab_mac_key"] == nil { return nil, fmt.Errorf("BT EAB信息不完整,缺少kid或hmacEncoded") } return map[string]any{ - "Kid": res["data"]["eab_kid"], - "HmacEncoded": res["data"]["eab_hmac"], + "Kid": data["eab_kid"], + "HmacEncoded": data["eab_mac_key"], }, nil } @@ -395,7 +398,7 @@ func GetAcmeClient(email, algorithm, eabId, ca string, httpClient *http.Client, accData, err = GetAccount(db, email, ca) if err != nil || accData == nil { logger.Debug("获取acme账号信息失败") - if ca != "Let's Encrypt" && ca != "zerossl" && ca != "buypass" { + if ca != "Let's Encrypt" && ca != "zerossl" && ca != "buypass" && ca != "litessl" { return nil, fmt.Errorf("未找到%s账号信息,请先在账号管理中添加%s账号, email:%s", ca, ca, email) } } @@ -432,6 +435,9 @@ func GetAcmeClient(email, algorithm, eabId, ca string, httpClient *http.Client, } case "litessl": eabData, err = GetEabFromBt(httpClient) + if err != nil { + return nil, fmt.Errorf("获取LiteSSL EAB信息失败: %v", err) + } case "sslcom", "google": return nil, fmt.Errorf("未找到EAB信息,请在账号管理中添加%s账号", ca) }