Weryfikuję łańcuch certyfikatów

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Z tego dokumentu dowiesz się, jak zweryfikować łańcuch certyfikatów, zanim prześlesz certyfikat do magazynu kluczy lub magazynu zaufanych certyfikatów w Apigee Edge. Proces ten opiera się na zestawie narzędzi OpenSSL do weryfikacji łańcucha certyfikatów i można go stosować w każdym środowisku, w którym jest dostępny OpenSSL.

Zanim zaczniesz

Zanim wykonasz czynności opisane w tym dokumencie, zapoznaj się z tymi tematami:

  • Jeśli nie znasz łańcucha certyfikatów, przeczytaj artykuł Łańcuch zaufania.
  • Jeśli nie znasz biblioteki OpenSSL, przeczytaj OpenSSL.
  • Jeśli chcesz używać przykładów poleceń 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 Konwertowanie certyfikatów na obsługiwany format, aby przekonwertować je na format PEM.

Weryfikowanie podmiotu i wystawcy certyfikatu w całym łańcuchu

Aby zweryfikować ł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 serwerze, na którym znajduje się klient OpenSSL.
  2. Podziel łańcuch certyfikatów na te certyfikaty (jeśli nie zostały jeszcze podzielone):
    • Certyfikat jednostki: entity.pem
    • Certyfikat pośredni: intermediate.pem
    • Certyfikat główny: root.pem

Na ilustracji poniżej przedstawiono przykładowy łańcuch certyfikatów:

przepływ łańcucha certyfikatów: certyfikat tożsamości – certyfikat pośredni – certyfikat główny;

Weryfikowanie podmiotu i wystawcy certyfikatu

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

  1. Aby uzyskać Subject i Issuer każdego certyfikatu w łańcuchu od entity do root i sprawdzić, czy tworzą one prawidłowy łańcuch certyfikatów, uruchom to polecenie OpenSSL:
    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 zgodny z Issuer poprzedniego certyfikatu w łańcuchu (z wyjątkiem certyfikatu Entity).
    • Subject i Issuer są takie same w przypadku certyfikatu głównego.

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

    Przykładowa weryfikacja łańcucha certyfikatów

    Poniżej znajduje się przykład danych wyjściowych 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 przykładzie powyżej zwróć uwagę na te kwestie:

    • Subject certyfikatu pośredniego jest zgodny z Issuer certyfikatu jednostki.
    • Subject certyfikatu głównego jest zgodny z Issuer certyfikatu pośredniego.
    • Subject i Issuer są takie same w przypadku certyfikatu głównego.

    Z powyższego przykładu możesz potwierdzić, że przykładowy łańcuch certyfikatów jest prawidłowy.

Weryfikowanie hasza podmiotu i wystawcy certyfikatu

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

Zawsze warto sprawdzić sekwencję haszy certyfikatów, ponieważ może to pomóc w identyfikowaniu problemów, takich jak niechciane spacje lub znaki specjalne w nazwie pospolitej (CN) certyfikatu.

  1. Aby uzyskać sekwencję hash każdego certyfikatu w łańcuchu od entity do root i sprawdzić, czy tworzą one prawidłowy łańcuch certyfikatów, uruchom to polecenie OpenSSL:
  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 zgodny z Issuer poprzedniego certyfikatu w łańcuchu (z wyjątkiem certyfikatu Entity).
    • Subject i Issuer są takie same w przypadku certyfikatu głównego.

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

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

    Poniżej znajduje się przykład danych wyjściowych 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 przykładzie powyżej zwróć uwagę na te kwestie:

    • subject hash certyfikatu pośredniego jest zgodny z issuer hash certyfikatu jednostki certyfikatu.
    • subject hash certyfikatu głównego jest zgodny z issuer hash certyfikatu wystawcy.
    • subject i issuer hash są takie same w przypadku certyfikatu głównego.

    Z powyższego przykładu możesz potwierdzić, że przykładowy łańcuch certyfikatów jest prawidłowy.

Weryfikowanie daty ważności certyfikatu

W tej sekcji opisujemy, jak sprawdzić, czy wszystkie certyfikaty w łańcuchu wygasły, za pomocą tych metod:

  • Uzyskiwanie daty rozpoczęcia i zakończenia ważności certyfikatu.
  • Uzyskiwanie stanu ważności.

Data rozpoczęcia i zakończenia

Aby uzyskać datę rozpoczęcia i zakończenia ważności każdego certyfikatu w łańcuchu od entity do root i sprawdzić, czy wszystkie certyfikaty w łańcuchu są ważne (data rozpoczęcia jest wcześniejsza niż dzisiejsza) i nie wygasły, uruchom to polecenie OpenSSL:

Przykładowa weryfikacja daty ważności certyfikatu za pomocą 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

Stan ważności

Aby sprawdzić, czy certyfikat już wygasł lub wygaśnie w ciągu najbliższych N seconds, uruchom to polecenie OpenSSL: Zwraca ono stan ważności certyfikatu w kontekście bieżącej daty systemowej.

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

Gdzie certificate to nazwa certyfikatu.

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

To polecenie używa 0 seconds, aby sprawdzić, 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 expireoznacza, że certyfikat jeszcze nie wygasł.