Weryfikuję łańcuch certyfikatów

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację 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. Proces ten korzysta z zestawu narzędzi OpenSSL do weryfikacji łańcucha certyfikatów i działa w każdym środowisku, w którym dostępna jest usługa OpenSSL.

Zanim zaczniesz

Zanim wykonasz czynności opisane w tym dokumencie, upewnij się, że rozumiesz następujące zagadnienia:

  • Jeśli nie znasz jeszcze łańcucha certyfikatów, przeczytaj artykuł Łańcuch zaufania.
  • Jeśli nie znasz biblioteki OpenSSL, przeczytaj artykuł OpenSSL.
  • Jeśli chcesz używać przykładów wiersza poleceń podanych w tym przewodniku, zainstaluj lub zaktualizuj klienta OpenSSL do najnowszej wersji.
  • Upewnij się, że certyfikaty są w formacie PEM. Jeśli certyfikaty nie są w formacie PEM, wykonaj instrukcje podane w artykule Konwertowanie certyfikatów na obsługiwany format, aby przekonwertować je na format PEM.

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

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

Dzielenie łańcucha certyfikatów

Zanim zweryfikujesz certyfikat, musisz podzielić łańcuch certyfikatów na osobne certyfikaty, wykonując te czynności:

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

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

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

Weryfikacja podmiotu i wydawcy certyfikatu

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

  1. Uruchom to polecenie OpenSSL, aby pobrać Subject i Issuer dla każdego certyfikatu w łańcuchu od entity do root i sprawdzić, czy tworzą one właściwy ł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 wartością Issuer poprzedniego certyfikatu w łańcuchu (z wyjątkiem certyfikatu Entity).
    • Wartości Subject i Issuer są takie same dla certyfikatu głównego.

    Jeśli certyfikaty w łańcuchu są zgodne z tymi wytycznymi, łańcuch certyfikatów jest uważany za kompletny i prawidłowy.

    Przykład weryfikacji łańcucha certyfikatów

    Poniżej znajdują się 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 pośredni

    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
            

    W powyższym przykładzie zwróć uwagę na te elementy:

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

    Korzystając z przykładu powyżej, możesz potwierdzić, że przykładowy łańcuch certyfikatów jest prawidłowy.

Weryfikuję podmiot certyfikatu i hasz wydawcy

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

Zawsze warto sprawdzić sekwencję haszowania certyfikatów, ponieważ może to pomóc w rozpoznawaniu problemów, takich jak nazwa pospolita (Common Name – CN) certyfikatu zawierającego niepotrzebne spacje lub znaki specjalne.

  1. Uruchom poniższe polecenie OpenSSL, aby pobrać sekwencję hash dla każdego certyfikatu w łańcuchu od entity do root i sprawdzić, czy tworzą one właściwy ł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 jest zgodne z wartością Issuer poprzedniego certyfikatu w łańcuchu (z wyjątkiem certyfikatu Entity).
    • Wartości Subject i Issuer są takie same dla certyfikatu głównego.

    Jeśli certyfikaty w łańcuchu są zgodne z tymi wytycznymi, łańcuch certyfikatów jest uważany za kompletny i prawidłowy.

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

    Poniżej znajdziesz dane wyjściowe poleceń OpenSSL dla przykładowego łańcucha certyfikatów zawierającego 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
        

    W powyższym przykładzie zwróć uwagę na te elementy:

    • Wartość subject hash certyfikatu pośredniego jest zgodna z wartością issuer hash certyfikatu jednostki.
    • Wartość subject hash certyfikatu głównego jest zgodna z wartością issuer hash certyfikatu wystawcy.
    • Wartości subject i issuer hash są takie same w certyfikacie głównym.

    Korzystając z przykładu powyżej, możesz potwierdzić, że przykładowy łańcuch certyfikatów jest prawidłowy.

Weryfikowanie wygaśnięcia certyfikatu

W tej sekcji dowiesz się, jak sprawdzić, czy wszystkie certyfikaty w łańcuchu wygasły, korzystając z tych metod:

  • Pobierz datę początkową i końcową certyfikatu.
  • Uzyskaj informacje o wygaśnięciu.

Daty rozpoczęcia i zakończenia

Uruchom poniższe polecenie OpenSSL, aby uzyskać datę początkową i końcową każdego certyfikatu w łańcuchu od entity do root i sprawdzić, czy wszystkie certyfikaty w łańcuchu są aktywne (data rozpoczęcia przypada przed dzisiejszą datą) i nie straciły ważności.

Weryfikacja wygaśnięcia przykładowego certyfikatu od 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 poniższe polecenie OpenSSL, aby sprawdzić, czy certyfikat już nie wygasł i czy wygaśnie za N seconds. Zwraca ona stan wygaśnięcia certyfikatu w kontekście bieżącej daty systemowej.

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

Gdzie certificate to nazwa certyfikatu.

Opcja sprawdzania ważności certyfikatu za pomocą opcji sprawdzania

To polecenie używa polecenia 0 seconds do sprawdzenia, czy certyfikat już wygasł:

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 oznacza, że certyfikat jeszcze nie wygasł.