auto_cert.go 706 B

1234567891011121314151617181920212223242526272829303132333435
  1. package cert
  2. import (
  3. "github.com/0xJacky/Nginx-UI/server/model"
  4. "log"
  5. "time"
  6. )
  7. func AutoCert() {
  8. defer func() {
  9. if err := recover(); err != nil {
  10. log.Println("[AutoCert] Recover", err)
  11. }
  12. }()
  13. log.Println("[AutoCert] Start")
  14. autoCertList := model.GetAutoCertList()
  15. for i := range autoCertList {
  16. domain := autoCertList[i].Domain
  17. key, err := GetCertInfo(domain)
  18. if err != nil {
  19. log.Println("GetCertInfo Err", err)
  20. // Get certificate info error, ignore this domain
  21. continue
  22. }
  23. // before 1 mo
  24. if time.Now().Before(key.NotBefore.AddDate(0, 1, 0)) {
  25. continue
  26. }
  27. // after 1 mo, reissue certificate
  28. err = IssueCert(domain)
  29. if err != nil {
  30. log.Println(err)
  31. }
  32. }
  33. }