X509Certificate2Collection.Find如何定义有效证书

时间:2015-11-03 01:44:57

标签: .net x509certificate digital-certificate

我最近遇到了一个问题,希望有人可以提供一些见解。证书即将到期,因此我们将其替换。有一段时间,旧证书和新证书都有效。旧证书过期后,以下代码仍返回新证书和过期证书:

X509Certificate2Collection.Find(X509FindType.FindBySubjectName, certName, true)

根据什么标准.Net认为证书有效。 .Net是否认为证书有效期至午夜UTC(应该如此)或当地时间午夜。

最后,我们只是删除了旧证书,一切都很好;但是下次我们需要更换证书时,我不会想要同样的问题。

1 个答案:

答案 0 :(得分:1)

首先,X509Certificate2Collection.Find(X509FindType.FindBySubjectName, certName, true)方法对集合中的每个对象执行X509Certificate2.Verify()方法,以确定证书是否有效。 Verify()方法执行大量检查(根据RFC 5280)。

关于有效性。证书中的有效性(内部)以UTC格式存储,.NET将此UTC时间转换为本地时间。当您打开证书并看到它在午夜之前有效时,证书在当前时区(而不是UTC午夜)的午夜有效。