obtain.go 946 B

123456789101112131415161718192021222324252627282930313233
  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/pkg/errors"
  8. )
  9. func obtain(payload *ConfigPayload, client *lego.Client, l *Logger, errChan chan 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. errChan <- errors.Wrap(err, "obtain certificate error")
  19. return
  20. }
  21. payload.Resource = &model.CertificateResource{
  22. Resource: certificates,
  23. PrivateKey: certificates.PrivateKey,
  24. Certificate: certificates.Certificate,
  25. IssuerCertificate: certificates.IssuerCertificate,
  26. CSR: certificates.CSR,
  27. }
  28. payload.WriteFile(l, errChan)
  29. }