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