当您请求OCSP服务器检查证书的撤销状态时,它会自动检查整个链的撤销状态吗?
即:如果证明证书“好”,那么这意味着整个链条是否合适?
我阅读了规范:http://www.ietf.org/rfc/rfc2560.txt
但我似乎还不清楚。
维基百科确实提到了链式OCSP请求:
http://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol
答案 0 :(得分:8)
OCSP响应程序仅检查OCSP请求中指定的特定证书的状态。响应者将忽略链的其余部分。
浏览器可以选择发送多个OCSP请求,以便在每个证书遍历链时检查每个证书,但目前这是在不同供应商之间以浏览器相关的方式实现的,并且因浏览器这一事实而进一步混淆将缓存由任意SSL服务器提供的中间证书,并在链中为不同的叶证书重用它们。有些浏览器甚至会尝试从第三个来源自动下载最新的中间体,即使SSL服务器发送较旧的中间产品也是如此。但是,应该注意的是,一般而言(目前),中间证书通常不会设置为具有OCSP信息,因此无论如何它们都不太可能是OCSP可检查的。
在相关的说明中,规范的新部分允许浏览器在同一HTTP帖子中请求多个OCSP检查 - 目的是允许中间体与叶子一起检查 - 但什么都没有支持这个,这很可能只在使用OCSP装订(Apache 2.4+等)的服务器上得到支持,否则OCSP响应者在没有装订的情况下对中间证书产生的负载可能会使其直接落空。 (通过签署成千上万片叶子的中间证书,想象一下,如果没有得到装订带来的分布式缓存的广泛支持,撤销请求会受到多大程度的打击。)
OCSP无法检查根证书。它们是由自己签名的,所以如果信任已经消失,那么无处可寻,你只需要从客户端删除根证书。