Odwoływanie certyfikatów zawodzi: który host i czego nie osiąga
Sprawdzanie odwołania działa na urządzeniu, które weryfikuje. Znajdź punkt dystrybucji CRL, przetestuj dostęp tego hosta, a potem odróżnij nieaktualną listę od odwołanego certyfikatu.
Certyfikaty mogą mieścić się w okresie ważności, a VPN nadal zgłasza błąd uwierzytelniania, i ktoś dochodzi do wniosku, że certyfikat został odwołany. To trzy różne fakty. Dane o odwołaniu musi pobrać urządzenie przeprowadzające walidację, z punktu publikacji wskazanego w samym certyfikacie. Gdy to urządzenie nie ma dostępu do punktu, sprawdzenie zawodzi z powodów niezwiązanych ze statusem certyfikatu.
Walidator odpowiada za ścieżkę pobierania
Zacznij od ustalenia walidatora. Gdy laptop sprawdza certyfikat bramy, to laptop pobiera dane; gdy brama sprawdza certyfikat klienta, robi to brama. Usługa uwierzytelniania w zapleczu może dodać trzeciego walidatora z własnym położeniem w sieci. Każdy ma inną trasę do internetu i inną konfigurację proxy. Dowody zebrane na stacji roboczej administratora nie mówią nic o serwerze wewnątrz DMZ.
Zapisz certyfikat, walidator, czas próby i dokładny kod stanu, zanim cokolwiek zmienisz.
Odczytaj punkt publikacji z certyfikatu
Certyfikat wskazuje, gdzie znajduje się jego status. Odczytaj te pola, zamiast zgadywać adres CA.
openssl x509 -in gateway.cer -noout -text | grep -A3 "CRL Distribution Points"
openssl x509 -in gateway.cer -noout -text | grep -A2 "Authority Information Access"Pierwsze rozszerzenie wymienia punkty dystrybucji CRL, a drugie wymienia metody dostępu do informacji o wystawcy, które mogą obejmować status OCSP i pobieranie certyfikatu wystawcy. To różne mechanizmy, a responder OCSP nie jest plikiem CRL. Host publikacji to często zwykły serwer WWW, a nie maszyna CA, ponieważ wystawca offline może podpisać CRL, którą dystrybuuje inny serwer. Reguła firewalla opisana jako dostęp do CA jest więc zbyt nieprecyzyjna, by ją wdrożyć lub ocenić.
Przetestuj pobieranie z urządzenia, które waliduje
Uruchom test pobierania w środowisku, które faktycznie przeprowadza walidację, z zatwierdzonym materiałem certyfikatowym i bez kluczy prywatnych.
certutil -urlfetch -verify .\client-test.cer
curl -sS -o /dev/null -w "%{http_code}\n" http://crl.example.com/ca.crlUruchomienie certutil weryfikuje łańcuch i raportuje, które pobrania URL powiodły się lub nie, natomiast wywołanie curl testuje jeden adres publikacji z tego samego hosta i zwraca tylko kod stanu. Nieudane pobranie z osiągalnego adresu wskazuje na problemy z treścią lub podpisem; błąd połączenia wskazuje na routing, DNS lub proxy. Zachowaj oba wyniki, bo jedno udane pobranie nie dowodzi, że cały łańcuch jest użyteczny. Zmień przykładowy host i ścieżkę na punkt dystrybucji znaleziony w certyfikacie.
Odróżnij brakujące dane od statusu odwołania
Cztery wyniki wyglądają z zewnątrz podobnie: punkt jest nieosiągalny, lista jest nieaktualna, lista jest podpisana przez niewłaściwego wystawcę albo certyfikat naprawdę został odwołany. Tylko ostatni jest wynikiem statusu i tylko on uzasadnia odebranie dostępu. Buforowanie dodatkowo komplikuje obraz, ponieważ wcześniej pobrane dane mogą ukrywać zepsutą ścieżkę publikacji do następnego odświeżenia. Wyłączenie sprawdzania odwołania, usunięcie niezwiązanych certyfikatów lub restart bramy zastępują diagnozę działaniem.
Po naprawie wymuś nowe uwierzytelnienie i potwierdź, że zamierzone pobranie statusu się udaje. Tam, gdzie istnieje kontrolowana tożsamość testowa, potwierdź, że nadal jest odrzucana, ponieważ dostępność, która usuwa sprawdzenie, nie jest naprawą.