obtain.go 975 B

1234567891011121314151617181920212223242526272829303132333435363738
  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 obtain(payload *ConfigPayload, client *lego.Client, l *Logger) error {
  10. request := certificate.ObtainRequest{
  11. Domains: payload.ServerName,
  12. Bundle: true,
  13. MustStaple: payload.MustStaple,
  14. }
  15. l.Info(translation.C("[Nginx UI] Obtaining certificate"))
  16. certificates, err := client.Certificate.Obtain(request)
  17. if err != nil {
  18. return cosy.WrapErrorWithParams(ErrObtainCert, err.Error())
  19. }
  20. payload.Resource = &model.CertificateResource{
  21. Resource: certificates,
  22. PrivateKey: certificates.PrivateKey,
  23. Certificate: certificates.Certificate,
  24. IssuerCertificate: certificates.IssuerCertificate,
  25. CSR: certificates.CSR,
  26. }
  27. err = payload.WriteFile(l)
  28. if err != nil {
  29. return err
  30. }
  31. return nil
  32. }