In the SSL protocol I don't see where the certificate is checked for revocation status.


Is the Certificate Revocation and Status Checking not implemented in the SSL protocol ?

  • SSL does not need to use certificates for identification of server or client, so adding it to SSL specification would make it less extensible. Commented Sep 21, 2012 at 12:39

2 Answers 2


The SSL protocol specifies the way a server sends its certificate to the client. The client should then "obtain" the server public key by validating the certificate. The SSL specification does not describe certificate validation; for that, you must look at X.509, in which you will see that it is a much more complex process than what is described in the document you link to.

Checking revocation status is part of certificate validation. The client is actually free to do it in any way it sees fit; many web browsers "check" revocation status by a process which goes like "mmhh... it is probably not revoked anyway, no need to check anything". In the X.509 world, revocation status can be ascertained by downloading and validating CRL (Certificate Revocation Lists) or obtaining OCSP responses from OCSP responders (an OCSP response is a kind of CRL reduced to a single target certificate). Theoretically, revocation status should be obtained for all certificates, i.e. the server certificate but also the intermediate CA certificates used to validate the server certificates, and all other certificates used to validate CRL and OCSP responses (this can become highly recursive). The aggregate cost (especially in download time) can become prohibitive, which is why many client rely on a weaker but faster model (e.g. checking status only for the server certificate itself, not the intermediate CA; or checking no status at all).

Anyway, validation is how the server public key is obtained, so it occurs during the SSL handshake, right before the ClientKeyExchange message is sent by the client.


There are two ways of checking the status of a certificate:

Neither of these is SSL specific, and they do just that: check the status of a certificate. So they both apply to anything that uses certificates.

  • so then at what stage of the ssl connection establishing phase is the status check being performed ?
    – user1157
    Commented Jan 24, 2011 at 5:32
  • 3
    @user1157: at the handshake stage after the server certificate is retrieved. It's up to the client (i.e. browser) to verify the server's certificate in any way it likes (i.e. has a valid certificate chain, it uses a strong certificate signature algorithm, it's not expired, Common name matches URL, it's not in the list of revoked certificates received from the CA on the last CRL update, got a 'good' reply to the OCSP request and so on). Commented Jan 24, 2011 at 5:53
  • yeah but certification revokation checking is not mention in the link that i posted above. :(
    – user1157
    Commented Jan 24, 2011 at 7:22
  • 1
    @user1157: Because both CRL & OCSP checks are something that it's up to the client to do, it's not part of the SSL protocol. Commented Jan 24, 2011 at 16:58

You must log in to answer this question.

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