Не удается найти установленный, но просроченный сертификат?

#c# #.net #certificate

#c# #.net #сертификат

Вопрос:

Срок действия одного из моих сертификатов истек. Это приводит к сбою следующего кода :

  X509Store store = new X509Store(settings.CertificateStore, settings.CertificateLocation);
            store.Open(OpenFlags.ReadOnly);
            X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, settings.Thumbprint, true);
            store.Close();

            if (certs.Count > 0)
            {
                LogHandler.Instance.Log(LogLev.Info, $"UseSecureConnection > Location:{settings.CertificateLocation}, Store:{settings.CertificateStore}, Thumbprint:{settings.Thumbprint}");
                _serviceHost.Credentials.ServiceCertificate.SetCertificate(settings.CertificateLocation,
                settings.CertificateStore, X509FindType.FindByThumbprint, settings.Thumbprint);

            }
            else
                throw new Exception("Could not find certificate with thumbprint "   settings.Thumbprint);
 

Эти коды отлично работали до истечения срока действия сертификата.

Как мне получить его, даже если срок его действия истек?

Комментарии:

1. store.Certificates.Find(X509FindType.FindByThumbprint, settings.Thumbprint, false) должен это сделать.

2. Вы правы, вы должны сделать это ответом. Спасибо! И да, я должен был лучше проверить параметры: (

3. Да, я хорошо знаю это чувство 🙂

Ответ №1:

 store.Certificates.Find(X509FindType.FindByThumbprint, settings.Thumbprint, false)
 

должен это сделать. Последний параметр validOnly .