Ich habe ein bestimmtes Zertifikat auf meinem Server installiert. Dieses Zertifikat hat gültige Daten und scheint im MMC-Snap-In Windows-Zertifikate einwandfrei zu sein.Warum wird dieses X.509-Zertifikat als ungültig betrachtet?
Wenn ich jedoch versuche, das Zertifikat zu lesen, um es in einem HttpRequest zu verwenden, kann ich es nicht finden. Hier ist der Code verwendet:
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);
xxx
ist die Seriennummer; Das Argument true
bedeutet "nur gültige Zertifikate". Die zurückgegebene Sammlung ist leer.
Die seltsame Sache ist, dass, wenn ich false
passiere, anzeigende ungültige Zertifikate sind akzeptabel, enthält die Sammlung ein Element — das Zertifikat mit der angegebenen Seriennummer.
Fazit: Das Zertifikat erscheint gültig, aber die Find
Methode behandelt es als ungültig! Warum?
Die Kettenzertifikate sind vorhanden, aber für diesen Benutzer irgendwie nicht zugänglich. Ich verwendete diesen Beispielcode von MSDN, um den Kettenstatus zu überprüfen: http://tinyurl.com/4wfnng. Dieser Code ruft abhängig vom Benutzer einen anderen Status ab. Ich werde versuchen, die Zertifikate neu zu installieren. Vielen Dank. – pvieira