fix: optimize self-signed certificate format (#13771)

This commit is contained in:
CityFun
2026-09-09 18:27:17 +08:00
committed by GitHub
parent 033cc7c2d1
commit 605c8cc6db

View File

@@ -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 {