Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IsCA certificate setting in Go x509 package

Tags:

go

x509

When creating an intermediate root certificate, do you set the "IsCA" property of the certificate template? What exactly does this property do?

I'm creating a certificate chain for an application. In this application I need to use intermediate certificates to sign some client certificates. I've found some guides on creating Root CA certificates and they indicate to set IsCA = true when creating the certificate template, but I cannot find any information on creating intermediate roots. Does the IsCA property still need to be set? Are there any other changes to the certificate template when creating an intermediate certificate vs. a root certificate?

like image 805
ClubPetey Avatar asked Nov 07 '25 15:11

ClubPetey


1 Answers

You must set the cA basic constraint for intermediate certificates. This bool indicates that a certificate can be used to verify other certificate signatures.

A certificate without cA set to true is a leaf certificate.

Here is the relevant portion of the "basic constraints" section of RFC 5280:

The cA boolean indicates whether the certified public key may be used to verify certificate signatures. If the cA boolean is not asserted, then the keyCertSign bit in the key usage extension MUST NOT be asserted. If the basic constraints extension is not present in a version 3 certificate, or the extension is present but the cA boolean is not asserted, then the certified public key MUST NOT be used to verify certificate signatures.

like image 83
Marc Avatar answered Nov 09 '25 08:11

Marc



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!