acme-mana-server-go/acme/cloudflare.go
ZhuoQinghui b1adda8a55 feat: 实现域名注册和管理功能
- 新增 ACME客户端功能,支持域名注册和证书申请
- 添加数据库模型和操作,用于存储和管理域名信息
- 实现 API 接口,提供域名注册、获取和分页查询功能
-集成全局错误处理和 panic捕获
- 添加单元测试和集成测试
2025-05-05 03:59:05 +08:00

70 lines
1.6 KiB
Go

package acme
import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
"fmt"
"github.com/go-acme/lego/v4/certcrypto"
"github.com/go-acme/lego/v4/certificate"
"github.com/go-acme/lego/v4/lego"
"github.com/go-acme/lego/v4/providers/dns/alidns"
"github.com/go-acme/lego/v4/registration"
)
func Apply() {
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil {
panic(err)
}
user := User{
Email: "123@qq.com",
Key: privateKey,
}
config := lego.NewConfig(&user)
config.CADirURL = lego.LEDirectoryProduction
config.Certificate.KeyType = certcrypto.RSA2048
client, err := lego.NewClient(config)
if err != nil {
panic(err)
}
conf := alidns.NewDefaultConfig()
conf.APIKey = "123"
conf.SecretKey = "123"
provider, err := alidns.NewDNSProviderConfig(conf)
_ = client.Challenge.SetDNS01Provider(provider)
reg, _ := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true})
user.Registration = reg
request := certificate.ObtainRequest{
Domains: []string{"a.com", "b.com"},
}
resource, _ := client.Certificate.Obtain(request)
fmt.Println(resource)
}
func ReNew() {
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil {
panic(err)
}
user := User{
Email: "123@qq.com",
Key: privateKey,
}
config := lego.NewConfig(&user)
config.CADirURL = lego.LEDirectoryProduction
config.Certificate.KeyType = certcrypto.RSA2048
resource := certificate.Resource{}
client, _ := lego.NewClient(config)
newResource, _ := client.Certificate.RenewWithOptions(resource, &certificate.RenewOptions{})
fmt.Println(newResource)
}