renew.go 1020 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package cert
  2. import (
  3. "github.com/0xJacky/Nginx-UI/model"
  4. "github.com/go-acme/lego/v4/certificate"
  5. "github.com/go-acme/lego/v4/lego"
  6. "github.com/pkg/errors"
  7. "log"
  8. )
  9. func renew(payload *ConfigPayload, client *lego.Client, l *log.Logger, errChan chan error) {
  10. if payload.Resource == nil {
  11. errChan <- errors.New("resource is nil")
  12. return
  13. }
  14. options := &certificate.RenewOptions{
  15. Bundle: true,
  16. }
  17. cert, err := client.Certificate.RenewWithOptions(payload.Resource.GetResource(), options)
  18. if err != nil {
  19. errChan <- errors.Wrap(err, "renew cert error")
  20. return
  21. }
  22. payload.Resource = &model.CertificateResource{
  23. Resource: cert,
  24. PrivateKey: cert.PrivateKey,
  25. Certificate: cert.Certificate,
  26. IssuerCertificate: cert.IssuerCertificate,
  27. CSR: cert.CSR,
  28. }
  29. payload.WriteFile(l, errChan)
  30. l.Println("[INFO] [Nginx UI] Certificate renewed successfully")
  31. }