有没有一种方法可以立即使CRL(证书吊销列表)缓存无效,从而导致客户端再次下载CRL?
我想在C#中实现它而不求助于命令行“certutil.exe”。
更好的办法是设置失效时间(例如UtcNow + 12hours)
最佳答案
我已经实现了这样的解决方案,它会根据调度程序设置每隔X小时更新客户端计算机上的CRL缓存。
您可以在此处阅读有关CRL的信息:
http://social.technet.microsoft.com/wiki/contents/articles/4954.certificate-status-and-revocation-checking.aspx
CRL缓存存储在客户端计算机上的特殊文件夹中,并且由存储在“元数据”和“内容”文件夹中的两个文件组成。这些文件夹位于“C:\Documents and Settings {用户名}\Application Data\Microsoft\CryptnetUrlCache”中,每台计算机的缓存位置为“%WINDIR%\System32\config\SystemProfile\Application Data\Microsoft\CryptnetUrlCache” 。
Cahce文件以CRL网址的MD5哈希和命名。
文件夹“Metadata”中的文件包含一些常量数据,上次更新日期,CRL URL,CRL文件大小等。 “目录”(Content)文件夹中的文件是CRL文件本身,并且与“元数据”中的文件具有相同的名称。
我解析元文件,检查其是否无效并通过CRL URL加载新的CRL文件,将其放置在“Content”文件夹中并重建元数据文件。
我将BouncyCaSTLe库用于这些目的。作为调度库,我使用Quartz.Net。
关于c# - 使CRL缓存无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10518567/