67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
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)
|
|
}
|
|
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))
|
|
}
|