CRL 在哪里?它是我系统中的一个在 OCSP 请求后更新的文件,还是我试图连接的 Web 服务器中的一个列表?
CRL 是证书颁发者提供的列表。该列表包含序列号和撤销证书的撤销原因,并由颁发者(或其他一些直接或间接受信任的 CA)签名。原始 CRL 文件在发行者处创建和存储。它通常通过 http/https 提供,但存在其他机制。要了解哪个 URL 为特定证书提供 CRL,请查看证书的“CRL 分发点”属性。请注意,由同一个 CA 颁发的许多证书共享同一个 CRL 分发点。
CRL 的本地副本在您的系统上的位置,它以何种格式存储在那里等取决于操作系统、浏览器、库......我怀疑它是否会根据 OCSP 响应进行更新,因为 OCSP 和 CRL 是独立的机制检查吊销,客户端通常只使用其中之一来检查特定证书的吊销。但它可能在某些情况下使用 OCSP,而在其他情况下使用 CRL(没有提供 OCSP)。
它更新谁?
这取决于。浏览器通常不再使用 CRL,而是移至 OCSP,完全跳过撤销检查或移至其他机制,例如CRLSets。如果任何其他应用程序使用 CRL 作为证书 - 它可能取决于应用程序。
OCSP 服务器如何检查吊销?(我的意思是它如何更新其撤销证书的数据库?)
它不检查撤销。OCSP 服务器由证书颁发者本身提供,证书颁发者本身已经拥有已撤销证书的列表(因为颁发者自己撤销了这些证书),或者在OCSP 装订的情况下,Web 服务器从颁发者那里获取(签名的)OCSP 响应并将其包含在不变在 TLS 握手中。
理论上,可以构建一些 OCSP 代理,它基于现有的 CRL 文件提供 OCSP 响应,但由于 OCSP 响应也已签名,因此该代理必须具有明确信任的证书,用于签署 OCSP 响应。