Weryfikuję łańcuch certyfikatów

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Ten dokument wyjaśnia, jak zweryfikować łańcuch certyfikatów przed przesłaniem certyfikatu do magazynu kluczy lub magazynu zaufania w Apigee Edge. Ten proces opiera się na zestaw narzędzi OpenSSL do weryfikacji certyfikatu. łańcucha i ma zastosowanie w każdym środowisku, w którym dostępny jest protokół OpenSSL.

Zanim zaczniesz

Przed użyciem kroków opisanych w tym dokumencie upewnij się, że rozumiesz następujące tematy:

  • Jeśli nie znasz łańcucha certyfikatów, przeczytaj artykuł Łańcuch zaufania.
  • Jeśli nie znasz jeszcze biblioteki OpenSSL, przeczytaj OpenSSL.
  • Jeśli chcesz używać przykładowych wierszy poleceń z tego przewodnika, zainstaluj lub zaktualizuj do najnowszej wersji klienta OpenSSL.
  • Sprawdź, czy certyfikaty są w formacie PEM. Jeśli certyfikaty nie są w formacie PEM, skorzystaj z instrukcji w Konwertowanie certyfikatów na obsługiwany format w celu konwertowania ich na format PEM.

Weryfikowanie podmiotu certyfikatu i wydawcy dla całego łańcucha

Aby sprawdzić łańcuch certyfikatów za pomocą poleceń OpenSSL, wykonaj czynności opisane w w tych sekcjach:

Dzielenie łańcucha certyfikatów

Przed zweryfikowaniem certyfikatu musisz podzielić łańcuch certyfikatów na kilka oddzielnych aby uzyskać certyfikat, wykonując te czynności:

  1. Zaloguj się na serwerze, na którym istnieje klient OpenSSL.
  2. Podziel łańcuch certyfikatów na następujące certyfikaty (jeśli jeszcze nie zostało to zrobione):
    • Certyfikat jednostki: entity.pem
    • Certyfikat średniozaawansowany: intermediate.pem
    • Certyfikat główny: root.pem
    .
.

Poniższy rysunek przedstawia przykładowy łańcuch certyfikatów:

Przepływ łańcucha certyfikatów: od certyfikatu tożsamości do certyfikatu pośredniego do certyfikatu głównego

Weryfikacja podmiotu certyfikatu i wydawcy

W tej sekcji dowiesz się, jak uzyskać podmiot i wystawcę certyfikatów oraz sprawdzić, czy czy masz prawidłowy łańcuch certyfikatów.

  1. Uruchom następujące polecenie OpenSSL, aby pobrać Subject i Issuer dla każdego certyfikatu w łańcuchu z entity do root i sprawdź, czy tworzą prawidłowy łańcuch certyfikatów:
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    Gdzie certificate to nazwa certyfikatu.

  2. Sprawdź, czy certyfikaty w łańcuchu są zgodne z tymi wytycznymi:
    • Subject każdego certyfikatu jest zgodne z Issuer poprzedniego certyfikatu w łańcuchu (oprócz certyfikatu Entity).
    • Uprawnienia Subject i Issuer są takie same dla certyfikatu głównego.

    Jeśli certyfikaty w łańcuchu są zgodne z tymi wytycznymi, uznaje się, że łańcuch certyfikatów jest kompletny i ważny.

    Przykładowa weryfikacja łańcucha certyfikatów

    Poniżej znajdziesz dane wyjściowe poleceń OpenSSL dla przykładowego łańcucha certyfikatów zawierającego 3 certyfikaty:

    Certyfikat jednostki

    openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):'
    
    Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1
    Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
            

    Certyfikat średniozaawansowany

    openssl x509 -text -in intermediate.pem  | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
            

    Certyfikat główny

    openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
            

    Zwróć uwagę na ten przykład w przykładzie powyżej:

    • Subject certyfikatu pośredniego jest zgodny z Issuer. certyfikatu jednostki.
    • Wartość Subject certyfikatu głównego jest zgodna z wartością Issuer certyfikatu do certyfikatu pośredniego.
    • Elementy Subject i Issuer są takie same w certyfikacie głównym.

    Na podstawie przykładu powyżej możesz sprawdzić, czy łańcuch przykładowych certyfikatów jest prawidłowy.

Weryfikowanie podmiotu certyfikatu i hasza wydawcy

W tej sekcji wyjaśniamy, jak pobrać hasz podmiotu i wystawcy certyfikatów oraz sprawdź, czy masz prawidłowy łańcuch certyfikatów.

Warto zawsze sprawdzać sekwencję skrótu certyfikatów, ponieważ może to ułatwić identyfikacją problemów, na przykład związanych z wspólną nazwą (CN) certyfikatu, które zawiera niepotrzebną przestrzeń lub znaków specjalnych.

  1. Uruchom następujące polecenie OpenSSL, aby pobrać sekwencję hash dla każdego tagu w łańcuchu od entity do root i sprawdź, czy stworzyć odpowiedni łańcuch certyfikatów.
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    Gdzie certificate to nazwa certyfikatu.

  3. Sprawdź, czy certyfikaty w łańcuchu są zgodne z tymi wytycznymi:
    • Subject każdego certyfikatu pasuje do Issuer poprzedniego w łańcuchu (z wyjątkiem certyfikatu Entity).
    • Uprawnienia Subject i Issuer są takie same dla certyfikatu głównego.

    Jeśli certyfikaty w łańcuchu są zgodne z tymi wytycznymi, to łańcuch certyfikatów to uznawane za kompletne i prawidłowe.

    Przykładowa weryfikacja łańcucha certyfikatów za pomocą sekwencji skrótu

    Poniżej znajdziesz dane wyjściowe poleceń OpenSSL dla przykładowego łańcucha certyfikatów zawierające 3 certyfikaty:

    openssl x509 -in entity.pem -hash -issuer_hash -noout
    c54c66ba #this is subject hash
    99bdd351 #this is issuer hash
        
    openssl x509 -in intermediate.pem -hash -issuer_hash -noout
    99bdd351
    4a6481c9
        
    openssl x509 -in root.pem -hash -issuer_hash -noout
    4a6481c9
    4a6481c9
        

    Zwróć uwagę na ten przykład w przykładzie powyżej:

    • Identyfikator subject hash certyfikatu pośredniego jest zgodny z adresem issuer hash jednostki certyfikat.
    • Numer subject hash certyfikatu głównego jest zgodny z issuer hash certyfikatu wydawcy.
    • Elementy subject i issuer hash są takie same w certyfikacie głównym.

    Na podstawie przykładu powyżej możesz sprawdzić, czy łańcuch przykładowych certyfikatów jest prawidłowy.

Weryfikowanie ważności certyfikatu

W tej sekcji dowiesz się, jak sprawdzić, czy wszystkie certyfikaty w łańcuchu wygasła przy użyciu tych metod:

  • Pobierz datę początkową i końcową certyfikatu.
  • Sprawdź stan wygaśnięcia.

Daty rozpoczęcia i zakończenia

Uruchom następujące polecenie OpenSSL, aby uzyskać datę początkową i końcową każdego certyfikatu w łańcuchu od entity do root i sprawdź, czy wszystkie certyfikaty w łańcuchu obowiązują (data rozpoczęcia przypada przed dzisiejszą datą) i nie wygasła.

Przykładowe daty ważności certyfikatu do daty rozpoczęcia i zakończenia

openssl x509 -startdate -enddate -noout -in entity.pem
notBefore=Feb  6 21:57:21 2020 GMT
notAfter=Feb  4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem
notBefore=Jun 15 00:00:42 2017 GMT
notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem
notBefore=Apr 13 10:00:00 2011 GMT
notAfter=Apr 13 10:00:00 2022 GMT

Wygaśnięcie

Uruchom następujące polecenie OpenSSL, aby sprawdzić, czy certyfikat już wygasł, lub wygaśnie w ciągu N seconds. Zwraca ono stan wygaśnięcia certyfikat w kontekście bieżącej daty systemowej.

openssl x509 -checkend <N Seconds> -noout -in certificate

Gdzie certificate to nazwa certyfikatu.

Przykładowa weryfikacja ważności certyfikatu za pomocą opcji sprawdzania

Następujące polecenie używa 0 seconds, aby sprawdzić, czy certyfikat jest już przeczytany wygasła lub nie:

openssl x509 -checkend 0 -noout -in entity.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem
Certificate will not expire

W tym przykładzie komunikat Certificate will not expire wskazuje, że certyfikat nie wygasł jeszcze.