ADCS联机响应程序(OCSP)不是实时的

时间:2012-04-16 08:02:42

标签: active-directory certificate ocsp certificate-revocation

我在我的实验室的同一台机器上安装了AD,AD CS和OCSP并进行了配置。然后,我使用C#来拥有OCSP客户端,以便它可以发送吊销检查请求并解析安装在本地计算机上的特定证书的响应。 C#代码是使用Bouncy Castle程序集(http://www.bouncycastle.org/csharp/)构建的

问题是,如果我在AD CS上发布了证书并将其撤销,并发布了CRL和Delta CRL,我的OCSP客户端仍然说这个证书是好的,直到我点击AD CS中的刷新撤销数据 - &gt ; OCSP - >阵列配置。

我已将OCSP中的吊销配置提供程序通过LDAP配置到我的本地CRL:// XXXX和

我还指定了我的吊销提供程序,每5分钟刷新一次CRL。

有什么方法可以“实时”设置我的OCSP,这意味着在我撤销证书之后,然后我的OCSP客户端将知道它已被撤销。或者,我的OCSP可以自动获取CRL,而不是手动单击“刷新撤销数据”。

2 个答案:

答案 0 :(得分:3)

好吧我终于得到了尽可能实时的方式,即使不是那个“实时”。 OCSP服务有自己的缓存,似乎缓存证书的撤销状态,直到CRL过期。在我的实验室中,我的CRL有效期为2天,这意味着即使我撤销了证书并发布了CRL并将OCSP设置为每5分钟刷新一次,原始状态将在OCSP缓存中,直到2天后。但是,如果我单击刷新撤销数据,OCSP将清除所有缓存并重新启动应用程序池。

解决方案是,首先我需要在OCSP服务中启用NONCE扩展。因此,当我发送OCSP请求时,我可以在NONCE中获取一些随机信息。在OCSP服务中,如果发现请求具有ONONCE信息,则不会使用任何缓存。所以我的撤销数据将在5分钟后刷新。

答案 1 :(得分:0)

我在“ Windows 2012 ADCS在线响应程序”上遇到了同样的问题。我已将“ Web代理缓存条目”添加到 0 ,重新启动“在线响应程序”服务,现在我有一个“实时”行为。

在我的测试期间,我还验证了您提到的相同行为,即OCSP Web代理缓存中的条目的生命周期与OCSP关联CRL的生命周期同步,具体取决于字段中指定的日期/时间信息CRL的“下一个CRL发布”。

由于我没有找到任何信息以便为此缓存的到期定义不同的策略,我已经发布了一个关于这一点的问题: Windows ADCS Online Responder - Define web proxy cache entries expiration delay