Moje pytanie jest podobne do pytania this.Tryb odwołań offline
Próbuję sprawdzić listę odwołania tylko przy użyciu lokalnej listy CRL.
Używam X509Chain.Build() z następującymi parametrami:
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;
ale pojawia się następujące błędy:
- RevocationStatusUnknown => Funkcja cofnięcie nie jest w stanie sprawdzić unieważnienia dla certyfikatu.
- OfflineRevocation => Funkcja unieważniania nie mogła sprawdzić odwołania certyfikatu, ponieważ serwer odwołania to w trybie offline.
Dziwne jest to, że gdy próbuję sprawdzić listę odwołania on-line (w wyniku zostaną zaktualizowane CRL), problem został rozwiązany. więc wygląda na to, że jeśli cokolwiek jest w pamięci podręcznej, problem nie może być już odtworzony.
Pomyślałem, że być może komunikat o błędzie jest niepoprawny i co tak naprawdę się dzieje, to, że gdy pamięć podręczna jest pusta, jest jakiś wyjątek, który powoduje pojawienie się tego komunikatu. Inną opcją jest to, że jest jakaś flaga informująca, czy pamięć podręczna została kiedyś zaktualizowana, a jeśli nigdy nie była aktualizowana, próbuje uzyskać informacje z zewnętrznego serwera
czy ktokolwiek może wskazać, jaki jest powód ten przypadek?
Jestem również widząc takie samo zachowanie .Nie oznacza to, że serwer jest w trybie offline, ale mówi, że nie mógł sprawdzić odwołania. Wydaje się, że nie dzieje się tak w przypadku certyfikatów z podpisem własnym. – Mark