证书吊销列表 (CRL) 存储在哪里?

Abr*_*ham 5 ssl https ocsp certificate ssl-certificate

据我所知,正如这里提到的,浏览器有两种主要技术来检查特定证书的吊销状态:使用在线证书状态协议(OCSP)或在证书吊销列表(CRL)中查找证书。

好吧,我知道有一些在线 OCSP 服务器或 OCSP 方法,浏览器会向那里发送请求以检查传入的证书是否被撤销,但我对 CRL 没有任何了解。

  1. CRL 在哪里?它是我系统中在 OCSP 请求后更新的文件还是我尝试连接的 Web 服务器中的列表?
  2. 谁更新它?
  3. OCSP 服务器如何检查吊销?(我的意思是它如何更新已撤销证书的数据库?)

请注意,我知道我可以在命令行中使用 CRL 看到缓存certutil -urlcache crl。但它是它的缓存!真正的文件在哪里?

Ste*_*ich 6

CRL 在哪里?它是我系统中在 OCSP 请求后更新的文件还是我尝试连接的 Web 服务器中的列表?

CRL 是证书颁发者提供的列表。该列表包含序列号和撤销已撤销证书的原因,并由颁发者(或其他一些直接或间接信任的 CA)签名。原始 CRL 文件由发行者创建并存储。它通常通过 http/https 提供,但也存在其他机制。要了解哪个 URL 提供特定证书的 CRL,请查看证书的“CRL 分发点”属性。请注意,同一 CA 颁发的许多证书共享相同的 CRL 分发点。

CRL 的本地副本在您的系统上的位置、存储格式等取决于操作系统、浏览器、库...我怀疑它是否会根据 OCSP 响应进行更新,因为 OCSP 和 CRL 是独立的机制检查吊销,客户端通常仅使用其中之一来检查特定证书的吊销。但在某些情况下可能会使用 OCSP,而在其他情况下(未提供 OCSP)可能会使用 CRL。

它更新了谁?

这取决于。浏览器通常不再使用 CRL,而是转向 OCSP、完全跳过吊销检查或转向某些其他机制(如CRLSets)。如果任何其他应用程序使用 CRL 作为证书 - 这可能取决于应用程序。

OCSP服务器如何检查撤销?(我的意思是它如何更新已撤销证书的数据库?)

它不检查撤销。OCSP 服务器由证书颁发者本身提供,该证书颁发者已经拥有已撤销证书的列表(因为颁发者自己撤销了这些证书),或者在OCSP 装订的情况下,Web 服务器从颁发者获取(签名的)OCSP 响应并将其包含在内在 TLS 握手中。

理论上,可以构建一些 OCSP 代理,它根据现有 CRL 文件提供 OCSP 响应,但由于 OCSP 响应也已签名,因此该代理必须具有明确信任的证书,用于签署 OCSP 响应。