From dd15c47acf8cafbac44ecf233810994b5857ab8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Mon, 26 Jan 2026 20:23:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AF=81=E4=B9=A6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=98=BE=E7=A4=BAip=E8=AF=81=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/data/cert.go | 16 +++++++++++++++- internal/data/website.go | 4 ++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/internal/data/cert.go b/internal/data/cert.go index cdbe50a9..86f48e2d 100644 --- a/internal/data/cert.go +++ b/internal/data/cert.go @@ -71,7 +71,11 @@ func (r *certRepo) List(page, limit uint) ([]*types.CertList, int64, error) { item.NotAfter = decode.NotAfter item.Issuer = decode.Issuer.CommonName item.OCSPServer = decode.OCSPServer + // 合并 DNSNames 和 IPAddresses item.DNSNames = decode.DNSNames + for _, ip := range decode.IPAddresses { + item.DNSNames = append(item.DNSNames, ip.String()) + } } list = append(list, item) } @@ -100,9 +104,15 @@ func (r *certRepo) Upload(ctx context.Context, req *request.CertUpload) (*biz.Ce return nil, errors.New(r.t.Get("failed to parse private key: %v", err)) } + // 合并 DNSNames 和 IPAddresses + domains := info.DNSNames + for _, ip := range info.IPAddresses { + domains = append(domains, ip.String()) + } + cert := &biz.Cert{ Type: "upload", - Domains: info.DNSNames, + Domains: domains, Cert: req.Cert, Key: req.Key, } @@ -138,7 +148,11 @@ func (r *certRepo) Create(ctx context.Context, req *request.CertCreate) (*biz.Ce func (r *certRepo) Update(ctx context.Context, req *request.CertUpdate) error { info, err := pkgcert.ParseCert(req.Cert) if err == nil && req.Type == "upload" { + // 合并 DNSNames 和 IPAddresses req.Domains = info.DNSNames + for _, ip := range info.IPAddresses { + req.Domains = append(req.Domains, ip.String()) + } } if req.Type == "upload" && req.AutoRenewal { return errors.New(r.t.Get("upload certificate cannot be set to auto renewal")) diff --git a/internal/data/website.go b/internal/data/website.go index 143a3caf..67f4caf4 100644 --- a/internal/data/website.go +++ b/internal/data/website.go @@ -186,7 +186,11 @@ func (r *websiteRepo) Get(id uint) (*types.WebsiteSetting, error) { setting.SSLNotAfter = decode.NotAfter.Format(time.DateTime) setting.SSLIssuer = decode.Issuer.CommonName setting.SSLOCSPServer = decode.OCSPServer + // 合并 DNSNames 和 IPAddresses setting.SSLDNSNames = decode.DNSNames + for _, ip := range decode.IPAddresses { + setting.SSLDNSNames = append(setting.SSLDNSNames, ip.String()) + } } // 访问日志 if setting.AccessLog = vhost.AccessLog(); setting.AccessLog == "" {