This past week I've been delving back into configuration of Certificate Authorities - and particularly into the most appropriate URLs for the CDP and AIA extensions in certificates.
In case you're not familiar with these abbreviations:
AIA - Authority Information Access. The URL(s) to a copy of the public certificate for the parent CA. Note that this definition explicitly precludes the root CA from having the AIA extension defined in the certificate.
CDP - CRL Distribution Point. The URL(s) to the CRL which should be retrieved by a client wishing to validate a certificate.
CRL - Certificate Revocation List. The file stored at the CDP describing the list of certificates which are no longer valid, and have been marked so explicitly (as opposed to simply expiring).
The Windows tools provide a number of variables which can be used to dynamically create paths and filenames for the AIA (certificate) and CDP (CRL). However, most engineers I've worked with don't know from the description what the variables even mean, so as much for my memory as for them, here's the list:
Overview | Examples | Recommendations |
---|---|---|
CAName Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
CAObjectClass Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
CATruncatedName Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
CDPObjectClass Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
CertificateName Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Generally Recommended Use in AIA Use in CDP |
ConfigurationContainer Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
CRLNameSuffix Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Required for CDP Use in AIA Use in CDP |
DeltaCRLAllowed Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Required for CDP Use in AIA Use in CDP |
ServerDNSName Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
ServerShortName Valid for AIA Valid for CDP |
First Certificate Next Certificate (same key) Next Certificate (new key) Full CRL(same key) Delta CRL |
Mixed Recommendation Use in AIA Use in CDP |
It's all too complex! I still don't get it! Can't you just tell me what I should use for each type of URL?
Well, not really. But the following are good starting points for you to consider. I can't tell you exactly what will, or will not work in your environment - at least, not without looking at your services and servers, and creating a design just for you. If you feel like you need that level of help, drop us a line and we'll see if we can work out an arrangement.
Purpose of URL | Example |
---|---|
AIA - LDAP URL | ldap:///CN=<CATruncatedName>,CN=AIA,CN=Public Key Services,CN=Services,<ConfigurationContainer><CAObjectClass> |
AIA - HTTP URL | http://pkiwebsite.company.com/DescriptiveName<CertificateName>.cer |
AIA - FILE URL | file://pkiwebserver/share$/DescriptiveName<CertificateName>.cer |
CRL - LDAP URL | ldap://CN=<CATruncatedName><CRLNameSuffix>,CN=<ServerShortName>,CN=CDP,CN=Public Key Services,CN=Services,<ConfigurationContainer><CDPObjectClass> |
CRL - HTTP URL | http://pkiwebsite.company.com/DescriptiveName<CRLNameSuffix><DeltaCRLAllowed>.crl |
CRL - FILE URL | file://pkiwebserver/share$/DescriptiveName<CRLNameSuffix><DeltaCRLAllowed>.crl |