【调整】litessl获取eab

This commit is contained in:
v-me-50
2026-01-14 10:39:51 +08:00
parent abcf57aacf
commit 49486297f8

View File

@@ -298,7 +298,6 @@ func GetEabFromBt(httpClient *http.Client) (map[string]any, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
req.Header.Set("Content-Type", "application/json")
if httpClient == nil { if httpClient == nil {
httpClient = &http.Client{} httpClient = &http.Client{}
} }
@@ -315,16 +314,20 @@ func GetEabFromBt(httpClient *http.Client) (map[string]any, error) {
if err != nil { if err != nil {
return nil, fmt.Errorf("解析BT EAB信息失败%v", err) 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 { if !ok {
return nil, fmt.Errorf("BT EAB信息格式错误缺少res字段") 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 nil, fmt.Errorf("BT EAB信息不完整缺少kid或hmacEncoded")
} }
return map[string]any{ return map[string]any{
"Kid": res["data"]["eab_kid"], "Kid": data["eab_kid"],
"HmacEncoded": res["data"]["eab_hmac"], "HmacEncoded": data["eab_mac_key"],
}, nil }, nil
} }
@@ -395,7 +398,7 @@ func GetAcmeClient(email, algorithm, eabId, ca string, httpClient *http.Client,
accData, err = GetAccount(db, email, ca) accData, err = GetAccount(db, email, ca)
if err != nil || accData == nil { if err != nil || accData == nil {
logger.Debug("获取acme账号信息失败") 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) 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": case "litessl":
eabData, err = GetEabFromBt(httpClient) eabData, err = GetEabFromBt(httpClient)
if err != nil {
return nil, fmt.Errorf("获取LiteSSL EAB信息失败: %v", err)
}
case "sslcom", "google": case "sslcom", "google":
return nil, fmt.Errorf("未找到EAB信息请在账号管理中添加%s账号", ca) return nil, fmt.Errorf("未找到EAB信息请在账号管理中添加%s账号", ca)
} }