我正在使用 OCSP 设置 CA,但收到了验证错误。
设置非常简单
- CA 在默认的 C: 文件夹中发布 CRL
- CA 在 AIA 字段中发布 OCSP URL
- OCSP 撤销配置正在运行(绿色复选标记),且 OCSP 证书(仍然有效)
- IIS Web 服务器正在运行 OCSP 目录
- DNS 通过目录指向正确的 IP
我按照以下步骤撤销了我在此过程中制作的一些测试证书:
- 手动发布吊销文件夹
- 设置包含带有 OCSP URL 的根证书的 GPO,以检查有效性,即使原始证书未在其 AIA 字段中包含它
在测试有效性时,我遇到了一些错误。
错误 1:
在上图中,CRL 确认证书已过期且无效。
然而,我仍然在用它,只是因为我预料它会报错。结果并没有。我可以正常访问该网站,没有任何问题,也没有收到无效的警告。
错误 2:
GPO 会引导客户端设备检查 OCSP,以验证那些原本未包含 OCSP 的证书。令人惊讶的是,我的 OCSP 甚至无法正常工作。我以前certutil -url
确认过,得到的是“状态:不成功”。我找不到任何可能的状态列表,但我猜应该会看到“已撤销”或“已过期”之类的信息。
事实并非如此。过期的证书不会被记录在 CRL 中;被撤销的证书才会被记录在 CRL 中,而且也只会在过期之前才会被记录。证书一旦过期,就不再有任何理由被记录在 CRL 中,因为它将永久失效。(这就是阻止 CRL 无限增长的原因!)
这个提示实际上意味着CRL 本身已过期。CRL 本身也有一个过期日期,以限制攻击者用旧的、未撤销证书的 CRL 替换新的、表明证书 X 已被撤销的 CRL 的可能性。
这是 HTTP 发布位置,但您的屏幕截图显示它没有查询 HTTP – 它正在查询LDAP URL(在您的 Active Directory 内),该 URL 仍然包含在您禁用对 LDAP 的发布之前最初发布的过时的 CRL。
最有可能的是,您的测试证书在 CDP 中有一个 ldap:// URL,因为它是在您禁用 LDAP 发布之前颁发的。