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) }