renew.go 1012 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package cert
  2. import (
  3. "github.com/0xJacky/Nginx-UI/internal/translation"
  4. "github.com/0xJacky/Nginx-UI/model"
  5. "github.com/go-acme/lego/v4/certificate"
  6. "github.com/go-acme/lego/v4/lego"
  7. "github.com/uozi-tech/cosy"
  8. )
  9. func renew(payload *ConfigPayload, client *lego.Client, l *Logger) error {
  10. if payload.Resource == nil {
  11. return ErrPayloadResourceIsNil
  12. }
  13. options := &certificate.RenewOptions{
  14. Bundle: true,
  15. MustStaple: payload.MustStaple,
  16. }
  17. cert, err := client.Certificate.RenewWithOptions(payload.Resource.GetResource(), options)
  18. if err != nil {
  19. return cosy.WrapErrorWithParams(ErrRenewCert, err.Error())
  20. }
  21. payload.Resource = &model.CertificateResource{
  22. Resource: cert,
  23. PrivateKey: cert.PrivateKey,
  24. Certificate: cert.Certificate,
  25. IssuerCertificate: cert.IssuerCertificate,
  26. CSR: cert.CSR,
  27. }
  28. err = payload.WriteFile(l)
  29. if err != nil {
  30. return err
  31. }
  32. l.Info(translation.C("[Nginx UI] Certificate renewed successfully"))
  33. return nil
  34. }