mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-07 23:31:10 +08:00
新增ssl.com
修复上传证书到宝塔面板 修复网站监控通知
This commit is contained in:
@@ -17,8 +17,12 @@ import (
|
||||
"github.com/go-acme/lego/v4/providers/dns/alidns"
|
||||
"github.com/go-acme/lego/v4/providers/dns/baiducloud"
|
||||
"github.com/go-acme/lego/v4/providers/dns/cloudflare"
|
||||
"github.com/go-acme/lego/v4/providers/dns/cloudns"
|
||||
"github.com/go-acme/lego/v4/providers/dns/godaddy"
|
||||
"github.com/go-acme/lego/v4/providers/dns/huaweicloud"
|
||||
"github.com/go-acme/lego/v4/providers/dns/namecheap"
|
||||
"github.com/go-acme/lego/v4/providers/dns/ns1"
|
||||
"github.com/go-acme/lego/v4/providers/dns/route53"
|
||||
"github.com/go-acme/lego/v4/providers/dns/tencentcloud"
|
||||
"github.com/go-acme/lego/v4/providers/dns/volcengine"
|
||||
"github.com/go-acme/lego/v4/providers/dns/westcn"
|
||||
@@ -43,6 +47,9 @@ var CADirURLMap = map[string]string{
|
||||
"Let's Encrypt": "https://acme-v02.api.letsencrypt.org/directory",
|
||||
"zerossl": "https://acme.zerossl.com/v2/DV90",
|
||||
"google": "https://dv.acme-v02.api.pki.goog/directory",
|
||||
"sslcom": "https://acme.ssl.com/sslcom-dv-rsa",
|
||||
"sslcom-rsa": "https://acme.ssl.com/sslcom-dv-rsa",
|
||||
"sslcom-ecc": "https://acme.ssl.com/sslcom-dv-ecc",
|
||||
}
|
||||
|
||||
func GetSqlite() (*public.Sqlite, error) {
|
||||
@@ -98,6 +105,25 @@ func GetDNSProvider(providerName string, creds map[string]string) (challenge.Pro
|
||||
config.APIKey = creds["api_key"]
|
||||
config.APISecret = creds["api_secret"]
|
||||
return godaddy.NewDNSProviderConfig(config)
|
||||
case "namecheap":
|
||||
config := namecheap.NewDefaultConfig()
|
||||
config.APIUser = creds["api_user"]
|
||||
config.APIKey = creds["api_key"]
|
||||
return namecheap.NewDNSProviderConfig(config)
|
||||
case "ns1":
|
||||
config := ns1.NewDefaultConfig()
|
||||
config.APIKey = creds["api_key"]
|
||||
return ns1.NewDNSProviderConfig(config)
|
||||
case "cloudns":
|
||||
config := cloudns.NewDefaultConfig()
|
||||
config.AuthID = creds["auth_id"]
|
||||
config.AuthPassword = creds["auth_password"]
|
||||
return cloudns.NewDNSProviderConfig(config)
|
||||
case "route53":
|
||||
config := route53.NewDefaultConfig()
|
||||
config.AccessKeyID = creds["access_key_id"]
|
||||
config.SecretAccessKey = creds["secret_access_key"]
|
||||
return route53.NewDNSProviderConfig(config)
|
||||
|
||||
default:
|
||||
return nil, fmt.Errorf("不支持的 DNS Provider: %s", providerName)
|
||||
@@ -128,6 +154,14 @@ func GetAcmeClient(db *public.Sqlite, email, algorithm, proxy, eabId string, log
|
||||
return nil, fmt.Errorf("HmacEncoded不能为空")
|
||||
}
|
||||
ca = eabData["ca"].(string)
|
||||
if ca == "sslcom" {
|
||||
switch algorithm[0] {
|
||||
case 'R', 'r':
|
||||
ca = "sslcom-rsa"
|
||||
case 'E', 'e':
|
||||
ca = "sslcom-ecc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
user, err := LoadUserFromDB(db, email, ca)
|
||||
|
||||
@@ -96,8 +96,11 @@ func UploadBt(key, csr, providerID string) (string, error) {
|
||||
if response == nil {
|
||||
return "", fmt.Errorf("证书上传失败: %v", err)
|
||||
}
|
||||
sslHash := response["ssl_hash"].(string)
|
||||
|
||||
sslHash, ok := response["ssl_hash"].(string)
|
||||
if !ok {
|
||||
return "", fmt.Errorf("证书上传失败: ssl_hash 不存在")
|
||||
}
|
||||
|
||||
return sslHash, nil
|
||||
}
|
||||
|
||||
@@ -162,10 +165,13 @@ func DeployBtSite(cfg map[string]any) error {
|
||||
if !ok {
|
||||
return fmt.Errorf("参数错误:siteName")
|
||||
}
|
||||
|
||||
|
||||
sslHash, err := UploadBt(keyPem, certPem, providerID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
batchInfo := []map[string]string{}
|
||||
|
||||
|
||||
siteNamesList := strings.Split(siteNames, ",")
|
||||
for _, siteName := range siteNamesList {
|
||||
batchInfo = append(batchInfo, map[string]string{
|
||||
@@ -174,7 +180,7 @@ func DeployBtSite(cfg map[string]any) error {
|
||||
})
|
||||
}
|
||||
batchs, err := json.Marshal(batchInfo)
|
||||
|
||||
|
||||
data := url.Values{}
|
||||
data.Set("BatchInfo", string(batchs))
|
||||
_, err = RequestBt(&data, "POST", providerID, "ssl?action=SetBatchCertToSite")
|
||||
@@ -239,7 +245,7 @@ func BtPanelSiteList(providerID string) ([]any, error) {
|
||||
fmt.Println("获取网站列表失败:", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
fmt.Printf("siteList:%#v\n", siteList["all"].([]any))
|
||||
return siteList["all"].([]any), nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,12 @@ func SiteMonitor() {
|
||||
fmt.Println(err)
|
||||
}
|
||||
defer s.Close()
|
||||
s1, err := report.GetSqlite()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
defer s1.Close()
|
||||
data, err := s.Select()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
@@ -63,8 +69,8 @@ func SiteMonitor() {
|
||||
}
|
||||
reportType, ok := v["report_type"].(string)
|
||||
if ok && errCount >= int(repeatSendGap) {
|
||||
s.TableName = "report"
|
||||
rdata, err := s.Where("type=?", []interface{}{reportType}).Select()
|
||||
s1.TableName = "report"
|
||||
rdata, err := s1.Where("type=?", []interface{}{reportType}).Select()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user