1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-02-08 01:20:07 +08:00

fix: 解决获取 SSL 信息错误的问题 (#5347)

Refs #5339
This commit is contained in:
ssongliu 2024-06-07 22:38:24 +08:00 committed by GitHub
parent f433895c97
commit 45d628838f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -347,7 +347,7 @@ func (u *SettingService) LoadFromCert() (*dto.SSLInfo, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
var data *dto.SSLInfo var data dto.SSLInfo
switch sslType.Value { switch sslType.Value {
case "self": case "self":
data, err = loadInfoFromCert() data, err = loadInfoFromCert()
@ -380,11 +380,11 @@ func (u *SettingService) LoadFromCert() (*dto.SSLInfo, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
data.Timeout = ssl.ExpireDate.Format("2006-01-02 15:04:05")
data.Domain = ssl.Domains data.Domain = ssl.Domains
data.SSLID = uint(id) data.SSLID = uint(id)
data.Timeout = ssl.ExpireDate.Format("2006-01-02 15:04:05")
} }
return data, nil return &data, nil
} }
func (u *SettingService) HandlePasswordExpired(c *gin.Context, old, new string) error { func (u *SettingService) HandlePasswordExpired(c *gin.Context, old, new string) error {
@ -426,23 +426,23 @@ func (u *SettingService) UpdatePassword(c *gin.Context, old, new string) error {
return nil return nil
} }
func loadInfoFromCert() (*dto.SSLInfo, error) { func loadInfoFromCert() (dto.SSLInfo, error) {
var info dto.SSLInfo var info dto.SSLInfo
certFile := path.Join(global.CONF.System.BaseDir, "1panel/secret/server.crt") certFile := path.Join(global.CONF.System.BaseDir, "1panel/secret/server.crt")
if _, err := os.Stat(certFile); err != nil { if _, err := os.Stat(certFile); err != nil {
return &info, err return info, err
} }
certData, err := os.ReadFile(certFile) certData, err := os.ReadFile(certFile)
if err != nil { if err != nil {
return &info, err return info, err
} }
certBlock, _ := pem.Decode(certData) certBlock, _ := pem.Decode(certData)
if certBlock == nil { if certBlock == nil {
return &info, err return info, err
} }
certObj, err := x509.ParseCertificate(certBlock.Bytes) certObj, err := x509.ParseCertificate(certBlock.Bytes)
if err != nil { if err != nil {
return &info, err return info, err
} }
var domains []string var domains []string
if len(certObj.IPAddresses) != 0 { if len(certObj.IPAddresses) != 0 {
@ -453,7 +453,7 @@ func loadInfoFromCert() (*dto.SSLInfo, error) {
if len(certObj.DNSNames) != 0 { if len(certObj.DNSNames) != 0 {
domains = append(domains, certObj.DNSNames...) domains = append(domains, certObj.DNSNames...)
} }
return &dto.SSLInfo{ return dto.SSLInfo{
Domain: strings.Join(domains, ","), Domain: strings.Join(domains, ","),
Timeout: certObj.NotAfter.Format("2006-01-02 15:04:05"), Timeout: certObj.NotAfter.Format("2006-01-02 15:04:05"),
RootPath: path.Join(global.CONF.System.BaseDir, "1panel/secret/server.crt"), RootPath: path.Join(global.CONF.System.BaseDir, "1panel/secret/server.crt"),