I have an application that uses TLS to secure communication between the two parties. The certificates involved have (Certificate Revocation List) CRL distribution points included. The CRL distribution point may or may not be contactable.

In the event that the distribution point in not contactable or is very slow, should my application refuse to make the connection until I have managed to fetch the CRL or should things proceed as per normal and action only taken when a certificate is found to be revoked?

If anyone can point me to RFCs or industry best practice in the regard, I will appreciate it.

1 Answer 1


I would go with strict certificate revocation checking and reject certificate for which revocation information is not available.

Why? If you are going to take actions (reject connection) when the certificate is revoked, you need to have this information (from CRL/OCSP). If the information is not available, you cannot determine whether the certificate is revoked or not. From the security perspective, the certificate is invalid unless opposite is proven. This means that the certificate should be considered revoked unless at least one reliable source (valid CRL and/or OCSP response) tells you that the certificate is not revoked (CRL does not contain subject's serial number in the revoked certificates list and/or OCSP explicitly says that the certificate's revocation status is good).

General rules/algorithm are described in the RFC5280 §6.3

  • To add just a bit, since CRLs and OCSP responses are signed, and can and must be verified themselves, you don't need to get them from the DP(s) or responder(s) named in the cert. Any path is fine, including relay, proxy, forwarding and caching methods. Even having someone telegraph them to you in Morse code is valid for security although quite inconvenient. Aug 25, 2016 at 0:54
  • 1
    If an attacker do a MitM with a stolen certificate, he can block OCSP/CRL requests. So it's safer to consider it invalid if you don't have an answer. Note: A certificate may contain a "must staple" field, that indicate the server must send an OCSP response.
    – Tom
    Aug 25, 2016 at 9:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .