2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 06:47:20 +08:00

feat: 自动续签面板证书

This commit is contained in:
耗子
2025-01-02 18:07:07 +08:00
parent 8e3d929def
commit 50d988a62b

View File

@@ -2,6 +2,7 @@ package job
import (
"log/slog"
"path/filepath"
"time"
"gorm.io/gorm"
@@ -9,6 +10,8 @@ import (
"github.com/tnb-labs/panel/internal/app"
"github.com/tnb-labs/panel/internal/biz"
pkgcert "github.com/tnb-labs/panel/pkg/cert"
"github.com/tnb-labs/panel/pkg/io"
"github.com/tnb-labs/panel/pkg/shell"
)
// CertRenew 证书续签
@@ -58,4 +61,19 @@ func (r *CertRenew) Run() {
r.log.Warn("续签证书失败", slog.Any("err", err))
}
}
// 续签面板证书
panelCert, err := io.Read(filepath.Join(app.Root, "panel/storage/cert.pem"))
if err != nil {
r.log.Warn("读取面板证书失败", slog.Any("err", err))
return
}
decode, err := pkgcert.ParseCert(panelCert)
if err != nil {
r.log.Warn("解析面板证书失败", slog.Any("err", err))
return
}
if decode.NotAfter.Sub(time.Now()).Hours() < 24*7 {
_, err = shell.Exec("panel-cli https generate")
}
}