From 9230c41506491eb46c795a1a033978266fa377ad Mon Sep 17 00:00:00 2001 From: zhengkunwang223 <1paneldev@sina.com> Date: Wed, 9 Sep 2026 18:06:14 +0800 Subject: [PATCH] fix: optimize self-signed certificate format --- agent/app/service/website_ca.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/agent/app/service/website_ca.go b/agent/app/service/website_ca.go index e60c7626bdc1..3bf0505448d0 100644 --- a/agent/app/service/website_ca.go +++ b/agent/app/service/website_ca.go @@ -303,7 +303,7 @@ func (w WebsiteCAService) ObtainSSL(req request.WebsiteCAObtain) (*model.Website NotAfter: notAfter, BasicConstraintsValid: true, IsCA: false, - KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment, + KeyUsage: leafKeyUsage(websiteSSL.KeyType), ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, DNSNames: domains, IPAddresses: ips, @@ -366,6 +366,14 @@ func (w WebsiteCAService) ObtainSSL(req request.WebsiteCAObtain) (*model.Website return websiteSSL, nil } +func leafKeyUsage(keyType string) x509.KeyUsage { + usage := x509.KeyUsageDigitalSignature + if ssl.KeyType(keyType) != certcrypto.EC256 && ssl.KeyType(keyType) != certcrypto.EC384 { + usage |= x509.KeyUsageKeyEncipherment + } + return usage +} + func createPrivateKey(keyType string) (privateKey any, publicKey any, privateKeyBytes []byte, err error) { privateKey, err = certcrypto.GeneratePrivateKey(ssl.KeyType(keyType)) if err != nil {