我需要执行证书撤销检查 . 必须允许用户选择OCSP- only ,CRL- only 或两者 . 该项目使用的是C#,但.NET不提供开箱即用的独立OCSP / CRL检查 .
默认情况下,Windows首先检查OCSP,如果OCSP服务器不可访问,则只检查CRL . 详情如下:
这不是必须实现的,并且不能更改要求 .
Win32 API显然允许使用OCSP- only 执行证书吊销检查:
- CertVerifyRevocation已启用CERT_VERIFY_REV_SERVER_OCSP_FLAG .
我没有看到CLR- only 检查的任何类似选项 .
正如我所看到的,唯一的方法就是使用它
-
CryptGetObjectUrl提取CRL网址
Question:
有没有其他 easier 方法使用Win32执行CRL- only 检查?
Note:
像Bouncy Castle这样的第三方图书馆不要做Windows做撤销检查的所有事情,我宁愿不重新发明轮子 .
这就是我坚持使用Win32方法的原因,因为它们已经处理了很多东西:delta CRL,装订OCSP,缓存,超时,重试,可配置性等 .