撤销客户端X509证书

时间:2010-03-12 15:59:50

标签: x509

我在Windows Server 2003上有ASP.NET Web服务。我有自己的证书颁发机构。我在Web服务中使用自己的客户端证书进行身份验证。 我做了客户证书。我叫Web服务,一切都好。然后我在证书颁发机构中撤销此证书。证书处于撤销证书中。 我使用此证书调用Web服务,但Web服务验证此证书是好的,但此证书在撤销之间。我不知道为什么?有人帮帮我吗?

我在验证证书上使用此方法。

X509Certificate2.Verify方法

我没有得到任何异常,证书在撤销之间,但是Web服务验证此证书是好的。

到klausbyskov: 谢谢。所以我试试这个:

    public void CreateUser(X509Certificate2 cert)
    {

        ServicePointManager.UseNagleAlgorithm = true;
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.CheckCertificateRevocationList = true;
        ServicePointManager.DefaultConnectionLimit =    ServicePointManager.DefaultPersistentConnectionLimit;

        if (VefiryCert(cert))
        {
          //...
        }
   }

但撤销的证书仍然可以验证为好

3 个答案:

答案 0 :(得分:0)

在致电CheckCertificateRevocationList之前,请尝试将ServicePointManager课程的true属性设为Verify()

答案 1 :(得分:0)

尝试在应用程序配置文件中设置它:

也许这有帮助......

答案 2 :(得分:0)

验证基于各种因素。

证书是否具有证书吊销列表分发点(CDP)扩展并且CRL是否可访问? (https://tools.ietf.org/html/rfc5280#section-4.2.1.13

注意:缓存CRL!

在没有任何延迟的情况下检查有效性的唯一方法是询问CA本身。但我不认为这是一种选择。

对于您要实现的目标,已引入在线响应程序协议(http://www.ietf.org/rfc/rfc2560.txt)。

证书是否具有AIA OCSP Extension并且您是否设置了OCSP响应程序? OCSP的触发器/间隔是什么(因为它的数据也是CRL)?