Meine Frage ist ähnlich wie this Frage.Offline-Sperrmodus
Ich versuche, die Sperrliste nur mithilfe der lokalen CRL zu überprüfen.
I X509Chain.Build() mit den folgenden Parametern bin mit:
var chainMachine = new X509Chain(true);
chainMachine.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
chainMachine.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(30);
chainMachine.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
chainMachine.ChainPolicy.VerificationTime = DateTime.Now;
chainMachine.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
Aber ich erhalte die folgenden Fehler:
- RevocationStatusUnknown => Der Widerruf Funktion nicht in der Lage ist, den Widerruf zu überprüfen für das Zertifikat.
- OfflineRevocation => Die Sperrfunktion konnte die Sperrung für das Zertifikat nicht überprüfen, da der Sperrserver offline ist.
Das Seltsame ist, dass wenn ich versuche Online die Sperrliste zu überprüfen (als Ergebnis wird die CRL aktualisiert werden), das Problem ist aufgelöst. Es sieht also so aus, dass sobald das Problem behoben ist, das Problem nicht mehr reproduziert werden kann.
Ich dachte, dass die Fehlermeldung möglicherweise falsch ist und was tatsächlich passiert ist, dass, wenn der Cache leer ist, gibt es eine Ausnahme, die diese Nachricht auftaucht. eine andere Option ist, dass es einige Flag gibt, die sagen, ob der Cache irgendwann aktualisiert wurde, und wenn es nie aktualisiert wurde versucht es die Informationen von einem externen Server
kann jemand darauf hinweisen, was der Grund dafür ist dieses Problem?
Ich sehe auch das gleiche Verhalten .Es sagt mir nicht, dass der Server offline ist, es sagt nur, dass es den Widerruf nicht überprüfen konnte. Bei selbstsignierten Zertifikaten scheint dies nicht der Fall zu sein. – Mark