diff --git a/core/app/service/setting.go b/core/app/service/setting.go index cc8d83e4f..fa9e481c7 100644 --- a/core/app/service/setting.go +++ b/core/app/service/setting.go @@ -240,6 +240,13 @@ func (u *SettingService) UpdateSSL(c *gin.Context, req dto.SSLUpdate) error { } _ = os.Remove(path.Join(secretDir, "server.crt")) _ = os.Remove(path.Join(secretDir, "server.key")) + go func() { + time.Sleep(1 * time.Second) + _, err := cmd.Exec("systemctl restart 1panel-core.service") + if err != nil { + global.LOG.Errorf("restart system failed, err: %v", err) + } + }() return nil } if _, err := os.Stat(secretDir); err != nil && os.IsNotExist(err) { @@ -329,17 +336,20 @@ func (u *SettingService) UpdateSSL(c *gin.Context, req dto.SSLUpdate) error { if err := os.Rename(path.Join(secretDir, "server.key.tmp"), path.Join(secretDir, "server.key")); err != nil { return err } + status, _ := settingRepo.GetValueByKey("SSL") + if req.SSL != status { + go func() { + time.Sleep(1 * time.Second) + _, err := cmd.Exec("systemctl restart 1panel-core.service") + if err != nil { + global.LOG.Errorf("restart system failed, err: %v", err) + } + }() + } if err := settingRepo.Update("SSL", req.SSL); err != nil { return err } - go func() { - time.Sleep(1 * time.Second) - _, err := cmd.Exec("systemctl restart 1panel-core.service") - if err != nil { - global.LOG.Errorf("restart system failed, err: %v", err) - } - }() - return nil + return u.UpdateSystemSSL() } func (u *SettingService) LoadFromCert() (*dto.SSLInfo, error) { diff --git a/frontend/src/views/setting/safe/index.vue b/frontend/src/views/setting/safe/index.vue index 3b969a02e..3600ca180 100644 --- a/frontend/src/views/setting/safe/index.vue +++ b/frontend/src/views/setting/safe/index.vue @@ -346,7 +346,9 @@ const handleSSL = async () => { } else { address = address.replaceAll('settings/safe', 'login'); } - window.location.href = `http://${address}`; + setTimeout(() => { + window.location.href = `http://${address}`; + }, 1000); }) .catch(() => { form.ssl = 'Enable'; diff --git a/frontend/src/views/setting/safe/ssl/index.vue b/frontend/src/views/setting/safe/ssl/index.vue index 8d5ce2a1f..baa051a69 100644 --- a/frontend/src/views/setting/safe/ssl/index.vue +++ b/frontend/src/views/setting/safe/ssl/index.vue @@ -247,7 +247,9 @@ const onSaveSSL = async (formEl: FormInstance | undefined) => { } else { address = address.replaceAll('settings/safe', 'login'); } - window.open(`https://${address}`, '_self'); + setTimeout(() => { + window.open(`https://${address}`, '_self'); + }, 1000); }); }); });