У меня установлен данный сертификат на моем сервере. Этот сертификат имеет действительные даты и кажется совершенно действительным в оснастке MMC сертификатов Windows.
Однако, когда я пытаюсь прочитать сертификат, чтобы использовать его в 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
считает его недействительным! Почему?