Search code examples
certificatepkica

How to renew Microsoft SubCA?


There are two separate CA virtual machines (Windows Server 2012):

  • RootCA
  • SubCA - created/signed by RootCA

RootCA is off and offline (no network connectivity).

How to renew Microsoft SubCA?

SubCA is valid for more than a year now, but we want to plan ahead. Root and Sub CAs are not connected to Windows domain, it is not for used for Active Directory. SubCA is used to generate SSL certificates for out internal servers - Apache, Nginx, IIS, etc.

RootCA and SubCA certificates are trusted on Windows and Linux machines (both servers and workstations).

Is it necessary to add newly renewed SubCA certificate as trusted after renewinig it? Or it will be already trusted, but now it is just renewed?


Solution

  • The renewed SubCA will be trusted as it will be signed by the already trusted RootCA - that's how PKI works.

    Never add the new SubCA certificate into your trust-store as it mustn't be explicitly trusted. It is only implicitly trusted because it's issuing CA (the Root in this case) is trusted. Remember that if you were to add it to the trust-store and you subsequently decided that the SubCA was compromised and therefore required revoking, you would have to manually remove it from all trust-stores - a laborious process.

    Instead, you will need to give all subscribers this new SubCA certificate when you next renew their end-entity certificate so that they present the correct chain when relying parties connect (as required by the TLS protocol).

    In the Windows world you can add it to the Intermediate CA store (not the Root CA store remember!) so that servers have it to hand when their end-entity certificate is renewed by the Sub CA. Windows will figure out which CA certificate to send when the end-entity certificate is renewed.

    In the non-Windows world you have to read the documentation for the application to ascertain where the CA certificates should be installed. Quite often, they are appended to the file containing the end-entity certificate, but it can vary - so do check.