I'm setting up an X.509 certificate authority that will issue only three types of certificate:
- Subordinate CA certificates,
- CRL-signing certificates, and
- OCSP responder certificates
I'm interested in being able to revoke all these certificate types if possible (and, of course, if necessary). I plan on using the issuing distribution point extension to issue two CRLs with distinct scope: one for CA certificates (i.e.
onlyContainsCACerts=true), and one for end-entity certificates (i.e.
onlyContainsUserCerts=true). All certificates would include the CRL distribution point extension linking to the CRL on which they would appear (with the CA certificates also having the name of the CRL-signing certificate as the CRL issuer).
If the CA issues the end-entity CRL itself, and the CRL-signing certificate(s) only issue(s) CRLs containing CA certificates, does this successfully escape the chicken-and-egg problem with revoking a CRL-signing certificate? Is it a problem (to me, the CA operator) that the CRL-signing certificate is not technically prevented from issuing a CRL that can contain end-entity certificates (and therefore, itself)?
Secondary to all this is the question of whether such CRLs are actually supported in software commonly used by relying parties? I've seen anecdotal evidence to say that neither Microsoft Windows nor Mozilla Firefox support partitioned CRLs.