如何从 c# 中的 windows 证书存储中访问具有相同通用名称的 2 个证书中的最新证书或稍后将过期的证书。我正在使用 X509Store.Certificates.Find 获取证书,但它返回给我一个证书列表,它们具有相同的 CN 名称,但我想要最新的。
PS:我不想通过指纹访问它,因为每次证书到期时我都必须更改它
如何从 c# 中的 windows 证书存储中访问具有相同通用名称的 2 个证书中的最新证书或稍后将过期的证书。我正在使用 X509Store.Certificates.Find 获取证书,但它返回给我一个证书列表,它们具有相同的 CN 名称,但我想要最新的。
PS:我不想通过指纹访问它,因为每次证书到期时我都必须更改它
以下函数将接受一组证书并返回最后一个过期的证书。它通过根据到期日期按降序创建证书的有序列表来实现这一点。
该函数不对每个证书的有效性状态做任何假设。
public Certificate getLongestLastingCertificate(Certificate[] certs)
{
Certificate longetsLastingCert = null;
if (certs != null)
{
if (certs.Count > 0)
{
longetsLastingCert = certs.OrderByDescending(o => o.GetExpirationDate()).First();
}
}
return longetsLastingCert;
}