mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 18:28:13 +00:00 
			
		
		
		
	update serial number to a valid non-zero number in ca certificate (#117791)
* update serial number to a valid non-zero number in ca certificate * fix the existing problem (0 SerialNumber in all certificate) as part of this PR in a separate commit
This commit is contained in:
		| @@ -631,10 +631,12 @@ func GeneratePrivateKey(keyType x509.PublicKeyAlgorithm) (crypto.Signer, error) | ||||
|  | ||||
| // NewSignedCert creates a signed certificate using the given CA certificate and key | ||||
| func NewSignedCert(cfg *CertConfig, key crypto.Signer, caCert *x509.Certificate, caKey crypto.Signer, isCA bool) (*x509.Certificate, error) { | ||||
| 	serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64)) | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
| 	if len(cfg.CommonName) == 0 { | ||||
| 		return nil, errors.New("must specify a CommonName") | ||||
| 	} | ||||
|   | ||||
| @@ -25,6 +25,7 @@ import ( | ||||
| 	"crypto/x509/pkix" | ||||
| 	"encoding/pem" | ||||
| 	"fmt" | ||||
| 	"math" | ||||
| 	"math/big" | ||||
| 	"net" | ||||
| 	"os" | ||||
| @@ -57,8 +58,14 @@ type AltNames struct { | ||||
| // NewSelfSignedCACert creates a CA certificate | ||||
| func NewSelfSignedCACert(cfg Config, key crypto.Signer) (*x509.Certificate, error) { | ||||
| 	now := time.Now() | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
| 	tmpl := x509.Certificate{ | ||||
| 		SerialNumber: new(big.Int).SetInt64(0), | ||||
| 		SerialNumber: serial, | ||||
| 		Subject: pkix.Name{ | ||||
| 			CommonName:   cfg.CommonName, | ||||
| 			Organization: cfg.Organization, | ||||
| @@ -116,9 +123,14 @@ func GenerateSelfSignedCertKeyWithFixtures(host string, alternateIPs []net.IP, a | ||||
| 	if err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
|  | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
| 	caTemplate := x509.Certificate{ | ||||
| 		SerialNumber: big.NewInt(1), | ||||
| 		SerialNumber: serial, | ||||
| 		Subject: pkix.Name{ | ||||
| 			CommonName: fmt.Sprintf("%s-ca@%d", host, time.Now().Unix()), | ||||
| 		}, | ||||
| @@ -144,9 +156,14 @@ func GenerateSelfSignedCertKeyWithFixtures(host string, alternateIPs []net.IP, a | ||||
| 	if err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
|  | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err = cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
| 	template := x509.Certificate{ | ||||
| 		SerialNumber: big.NewInt(2), | ||||
| 		SerialNumber: serial, | ||||
| 		Subject: pkix.Name{ | ||||
| 			CommonName: fmt.Sprintf("%s@%d", host, time.Now().Unix()), | ||||
| 		}, | ||||
|   | ||||
| @@ -346,11 +346,12 @@ func generateClientCert(t *testing.T) testCerts { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	serial, err := rand.Int(rand.Reader, new(big.Int).SetInt64(math.MaxInt64)) | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err := rand.Int(rand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
| 	certTmpl := x509.Certificate{ | ||||
| 		Subject: pkix.Name{ | ||||
| 			CommonName: "the-api-server-user", | ||||
|   | ||||
| @@ -183,10 +183,12 @@ func writeCerts(t *testing.T, clientSigningCert *x509.Certificate, clientSigning | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	serial, err := rand.Int(rand.Reader, new(big.Int).SetInt64(math.MaxInt64)) | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err := rand.Int(rand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
|  | ||||
| 	certTmpl := x509.Certificate{ | ||||
| 		Subject: pkix.Name{ | ||||
|   | ||||
| @@ -53,10 +53,12 @@ func EncodeCertPEM(cert *x509.Certificate) []byte { | ||||
|  | ||||
| // NewSignedCert creates a signed certificate using the given CA certificate and key | ||||
| func NewSignedCert(cfg *certutil.Config, key crypto.Signer, caCert *x509.Certificate, caKey crypto.Signer) (*x509.Certificate, error) { | ||||
| 	serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64)) | ||||
| 	// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max). | ||||
| 	serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1)) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	serial = new(big.Int).Add(serial, big.NewInt(1)) | ||||
| 	if len(cfg.CommonName) == 0 { | ||||
| 		return nil, fmt.Errorf("must specify a CommonName") | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Min Ni
					Min Ni