Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
In diesem Dokument wird erläutert, wie Sie eine Zertifikatskette validieren, bevor Sie das Zertifikat in einen Schlüsselspeicher oder einen Truststore in Apigee Edge hochladen. Das Verfahren beruht auf dem OpenSSL-Toolkit, um die Zertifikatskette zu validieren, und kann in jeder Umgebung verwendet werden, in der OpenSSL verfügbar ist.
Hinweis
Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie sich mit den folgenden Themen vertraut machen:
- Wenn Sie mit einer Zertifikatskette nicht vertraut sind, lesen Sie die Informationen zur Vertrauenskette.
- Wenn Sie mit der OpenSSL-Bibliothek nicht vertraut sind, lesen Sie die Informationen unter OpenSSL.
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie den OpenSSL-Client oder aktualisieren Sie ihn auf die neueste Version.
- Die Zertifikate müssen im PEM-Format vorliegen. Wenn die Zertifikate nicht im PEM-Format vorliegen, folgen Sie der Anleitung unter Zertifikate in ein unterstütztes Format konvertieren, um sie in das PEM-Format zu konvertieren.
Zertifikatsinhaber und -aussteller für die gesamte Kette validieren
Führen Sie die in den folgenden Abschnitten beschriebenen Schritte aus, um die Zertifikatskette mit OpenSSL-Befehlen zu validieren:
- Zertifikatskette aufteilen
- Zertifikatsinhaber und -aussteller prüfen
- Zertifikatsinhaber und Aussteller-Hash prüfen
- Ablauf des Zertifikats prüfen
Zertifikatskette aufteilen
Bevor Sie das Zertifikat validieren, müssen Sie die Zertifikatskette in separate Zertifikate aufteilen. Gehen Sie dazu so vor:
- Melden Sie sich auf dem Server an, auf dem sich der OpenSSL-Client befindet.
- Teilen Sie die Zertifikatskette in die folgenden Zertifikate auf (falls noch nicht geschehen):
-
Entitätszertifikat:
entity.pem
-
Zwischenzertifikat:
intermediate.pem
-
Root-Zertifikat:
root.pem
Die folgende Abbildung zeigt ein Beispiel für eine Zertifikatskette:
Zertifikatsinhaber und -aussteller prüfen
In diesem Abschnitt wird beschrieben, wie Sie den Antragsteller und den Aussteller der Zertifikate abrufen und prüfen, ob Sie eine gültige Zertifikatskette haben.
-
Führen Sie den folgenden OpenSSL-Befehl aus, um
Subject
undIssuer
für jedes Zertifikat in der Kette vonentity
bisroot
abzurufen und zu prüfen, ob sie eine korrekte Zertifikatskette bilden:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
Dabei ist certificate der Name des Zertifikats.
-
Die Zertifikate in der Kette müssen den folgenden Richtlinien entsprechen:
-
Subject
jedes Zertifikats stimmt mit demIssuer
des vorherigen Zertifikats in der Kette überein (außer dem ZertifikatEntity
). -
Subject
undIssuer
sind für das Root-Zertifikat identisch.
Wenn die Zertifikate in der Kette diesen Richtlinien entsprechen, gilt die Zertifikatskette als vollständig und gültig.
Beispiel für Validierung der Zertifikatskette
Das folgende Beispiel ist die Ausgabe der OpenSSL-Befehle für eine Beispiel-Zertifikatskette mit drei Zertifikaten:
Entitätszertifikat
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
Zwischenzertifikat
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
Root-Zertifikat
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
Beachten Sie im obigen Beispiel Folgendes:
-
Der
Subject
des Zwischenzertifikats stimmt mit demIssuer
des Entitätszertifikats überein. -
Der
Subject
des Root-Zertifikats stimmt mit demIssuer
des Zwischenzertifikats überein. -
Subject
undIssuer
sind im Root-Zertifikat identisch.
Im obigen Beispiel können Sie prüfen, ob die Beispielzertifikatkette gültig ist.
-
Zertifikatsinhaber und Aussteller-Hash prüfen
In diesem Abschnitt wird erläutert, wie Sie den Hash von Subjekt und Aussteller der Zertifikate abrufen und prüfen, ob Sie eine gültige Zertifikatskette haben.
Es hat sich immer bewährt, die Hash-Sequenz von Zertifikaten zu überprüfen, da dies beim Identifizieren von Problemen wie dem Common Name (CN) des Zertifikats mit unerwünschten Leerzeichen oder Sonderzeichen hilfreich sein kann.
- Führen Sie den folgenden OpenSSL aus, um die
hash
-Sequenz für jedes Zertifikat in der Kette vonentity
bisroot
abzurufen, und prüfen Sie, ob sie eine korrekte Zertifikatskette bilden. - Die Zertifikate in der Kette müssen den folgenden Richtlinien entsprechen:
-
Subject
jedes Zertifikats stimmt mit demIssuer
des vorherigen Zertifikats in der Kette überein (außer dem ZertifikatEntity
). -
Subject
undIssuer
sind für das Root-Zertifikat identisch. -
Der
subject hash
des Zwischenzertifikats stimmt mit demissuer hash
des Entitätszertifikats überein. -
Der
subject hash
des Root-Zertifikats stimmt mit demissuer hash
des Ausstellerzertifikats überein. -
subject
undissuer hash
sind im Root-Zertifikat identisch.
openssl x509 -hash -issuer_hash -noout -in certificate
Dabei ist certificate der Name des Zertifikats.
Wenn die Zertifikate in der Kette diesen Richtlinien entsprechen, gilt die Zertifikatskette als vollständig und gültig.
Beispiel für die Validierung der Zertifikatskette durch eine Hash-Sequenz
Das folgende Beispiel ist die Ausgabe der OpenSSL-Befehle für eine Beispiel-Zertifikatskette mit drei Zertifikaten:
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
Beachten Sie im obigen Beispiel Folgendes:
Im obigen Beispiel können Sie prüfen, ob die Beispielzertifikatkette gültig ist.
Ablauf des Zertifikats prüfen
In diesem Abschnitt wird erläutert, wie Sie mit den folgenden Methoden prüfen, ob alle Zertifikate in der Kette abgelaufen sind:
- Rufen Sie das Start- und Enddatum des Zertifikats ab.
- Rufen Sie den Ablaufstatus ab.
Start- und Enddatum
Führen Sie den folgenden OpenSSL aus, um das Start- und Enddatum für jedes Zertifikat in der Kette von entity
bis root
abzurufen. Prüfen Sie dann, ob alle Zertifikate in der Kette gültig sind (Startdatum vor dem heutigen Datum) und nicht abgelaufen sind.
Beispiel für die Validierung des Zertifikatsablaufs bis zum Start- und Enddatum
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
Ablaufstatus
Führen Sie den folgenden OpenSSL aus, um zu prüfen, ob das Zertifikat bereits abgelaufen ist oder im nächsten N seconds
abläuft. Dadurch wird der Ablaufstatus des Zertifikats im Kontext des aktuellen Systemdatums zurückgegeben.
openssl x509 -checkend <N Seconds> -noout -in certificate
Dabei ist certificate der Name des Zertifikats.
Beispiel für die Validierung des Ablaufs eines Zertifikats über eine Checkend-Option
Der folgende Befehl prüft mit 0 seconds
, ob das Zertifikat bereits abgelaufen ist oder nicht:
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
In diesem Beispiel gibt die Meldung Certificate will not expire
an, dass das Zertifikat noch nicht abgelaufen ist.