我在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))
{
//...
}
}
但撤销的证书仍然可以验证为好
答案 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)?