Переглянути джерело

fix(waf): 修复 SSL证书处理逻辑

- 增加了对证书 ID 为0 的情况的处理
- 在证书内容有变化时,更新 SSL 证书
- 优化了 SSL 证书处理流程,提高了代码可读性和维护性
fusu 21 годин тому
батько
коміт
1d5513add6
1 змінених файлів з 15 додано та 0 видалено
  1. 15 0
      internal/service/api/waf/aidedweb.go

+ 15 - 0
internal/service/api/waf/aidedweb.go

@@ -1037,6 +1037,21 @@ func (s *aidedWebService) ProcessSSLCertificateUpdate(ctx context.Context, req *
 		return nil // 非HTTPS协议不需要处理SSL证书
 	}
 
+	// 如果证书ID为0
+	if oldData.SslCertId == 0 {
+		err := s.ProcessSSLCertificate(ctx, req, require, v1.Website{
+			HttpJSON: v1.TypeJSON{
+				SslPolicyRef: v1.SslPolicyRef{
+					SslPolicyId: int64(oldData.SslPolicyId),
+				},
+			},
+		})
+		if err != nil {
+			return fmt.Errorf("处理SSL证书失败: %w", err)
+		}
+		return nil
+	}
+
 	// 如果证书内容有变化
 	if oldData.HttpsCert != req.WebForwardingData.HttpsCert || oldData.HttpsKey != req.WebForwardingData.HttpsKey {
 		if err := s.sslCert.EditSSLCert(ctx, v1.SSL{