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:
- Podział łańcucha certyfikatów
- Weryfikowanie podmiotu i wydawcy certyfikatu
- Weryfikowanie podmiotu certyfikatu i haszu wydawcy
- Weryfikowanie wygaśnięcia certyfikatu
Dzielenie łańcucha certyfikatów
Zanim zweryfikujesz certyfikat, musisz podzielić łańcuch certyfikatów na osobne certyfikaty, wykonując te czynności:
- Zaloguj się na serwer, na którym jest klient OpenSSL.
- 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:
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.
-
Uruchom to polecenie OpenSSL, aby pobrać
Subject
iIssuer
dla każdego certyfikatu w łańcuchu odentity
doroot
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.
-
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 certyfikatuEntity
). -
Wartości
Subject
iIssuer
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
iIssuer
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.
- Uruchom poniższe polecenie OpenSSL, aby pobrać sekwencję
hash
dla każdego certyfikatu w łańcuchu odentity
doroot
i sprawdzić, czy tworzą one właściwy łańcuch certyfikatów. - 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 certyfikatuEntity
). -
Wartości
Subject
iIssuer
są takie same dla certyfikatu głównego. -
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
iissuer hash
są takie same w certyfikacie głównym.
openssl x509 -hash -issuer_hash -noout -in certificate
Gdzie certificate to nazwa certyfikatu.
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:
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ł.