У меня есть данный сертификат, установленный на моем сервере. Этот сертификат имеет допустимые даты и выглядит совершенно корректным в оснастке MMC Windows сертификатов.Почему этот сертификат X.509 считается недействительным?
Однако, когда я пытаюсь прочитать сертификат, чтобы использовать его в HttpRequest, я не могу его найти. Вот код используется:
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);
xxx
является серийным номером; аргумент true
означает «только действительные сертификаты». Возвращенная коллекция пуста.
Странно то, что если я пройду false
, указание допустимых сертификатов приемлемо, коллекция содержит один элемент — сертификат с указанным серийным номером.
В заключение: сертификат представляется действительным, но метод Find
считает его недействительным! Зачем?
Сертификаты цепи присутствуют, но каким-то образом недоступны для этого пользователя. Я использовал этот пример кода из MSDN, чтобы проверить статус цепи: http://tinyurl.com/4wfnng. Этот код извлекает различный статус в зависимости от пользователя. Я попытаюсь переустановить сертификаты. Благодарю. – pvieira 2008-09-19 09:40:56