package test import ( "acme-mana/src" "crypto/x509" "encoding/json" "encoding/pem" "github.com/go-acme/lego/v4/certificate" "log" "os" "path" "path/filepath" "time" ) func TestValidExist() { domain := src.GetAppConfig().Domains[0] name := domain.Name dir := src.GetAppConfig().CertDir certDir := path.Join(dir, name) log.Println(src.ValidExist(certDir, domain)) } func TestParseCertInfo() { domain := src.GetAppConfig().Domains[0] name := domain.Name dir := src.GetAppConfig().CertDir certDir := path.Join(dir, name) infoFile := path.Join(certDir, src.CertInfoFileName) certInfo := src.ParseCertInfo(infoFile, domain) log.Println(certInfo) log.Println(certInfo.Info.NotAfter) log.Println(certInfo.Info.NotAfter.Sub(time.Now())) log.Println(certInfo.Info.NotAfter.Sub(time.Now()) < 7*24*time.Hour) } func TestParseCert() { // 读取 dir := src.GetAppConfig().CertDir dir = filepath.Join(dir, "acme.zzzykj.cn") certFile := path.Join(dir, src.CertFileName) certBytes, err := os.ReadFile(certFile) if err != nil { panic(err) } block, _ := pem.Decode(certBytes) if block == nil { log.Fatalf("Failed to decode PEM block") return } certParse, err := x509.ParseCertificate(block.Bytes) if err != nil { log.Fatalf("Failed to parse certificate: %v", err) } //info, err := json.Marshal(certParse) //if err != nil { // log.Fatalf("Failed to marshal certificate: %v", err) //} certInfo := src.CertInfo{ Cert: certificate.Resource{}, Info: *certParse, } info, err := json.Marshal(certInfo) if err != nil { log.Fatalf("Failed to marshal certificate: %v", err) } log.Println(string(info)) //log.Println(string(info)) //log.Println(certParse) }