Files
2026-05-13 08:38:20 +08:00

42 lines
1.0 KiB
Go

package cert
import (
"context"
"github.com/0xJacky/Nginx-UI/internal/translation"
"github.com/0xJacky/Nginx-UI/model"
"github.com/go-acme/lego/v5/certificate"
"github.com/go-acme/lego/v5/lego"
"github.com/uozi-tech/cosy"
)
func obtain(payload *ConfigPayload, client *lego.Client, l *Logger) error {
request := certificate.ObtainRequest{
Domains: payload.ServerName,
Bundle: true,
KeyType: payload.GetKeyType(),
MustStaple: payload.MustStaple,
}
l.Info(translation.C("[Nginx UI] Obtaining certificate"))
certificates, err := client.Certificate.Obtain(context.Background(), request)
if err != nil {
return cosy.WrapErrorWithParams(ErrObtainCert, err.Error())
}
payload.Resource = &model.CertificateResource{
Resource: certificates,
PrivateKey: certificates.PrivateKey,
Certificate: certificates.Certificate,
IssuerCertificate: certificates.IssuerCertificate,
CSR: certificates.CSR,
}
err = payload.WriteFile(l)
if err != nil {
return err
}
return nil
}