Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
In diesem Dokument wird erläutert, wie Sie eine Zertifikatskette validieren, bevor Sie das Zertifikat in einen Keystore oder Truststore in Apigee Edge hochladen. Der Prozess basiert auf dem OpenSSL-Toolkit zum Validieren der Zertifikats kette und kann in jeder Umgebung angewendet werden, in der OpenSSL verfügbar ist.
Hinweis
Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie mit den folgenden Themen vertraut sein:
- Wenn Sie mit Zertifikatsketten nicht vertraut sind, lesen Sie den Artikel Vertrauenskette.
- Wenn Sie mit der OpenSSL-Bibliothek nicht vertraut sind, lesen Sie OpenSSL.
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie die aktuelle Version des OpenSSL-Clients oder aktualisieren Sie die vorhandene Version.
- Achten Sie darauf, dass die Zertifikate 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.
Zertifikatssubjekt und -aussteller für die vollständige Kette validieren
Führen Sie die Schritte in den folgenden Abschnitten aus, um die Zertifikatskette mit OpenSSL-Befehlen zu validieren:
- Zertifikatskette aufteilen
- Zertifikatssubjekt und -aussteller überprüfen
- Hash des Zertifikatssubjekts und -ausstellers überprüfen
- Ablauf des Zertifikats überprüfen
Zertifikatskette aufteilen
Bevor Sie das Zertifikat validieren, müssen Sie die Zertifikatskette mit den folgenden Schritten in separate Zertifikate aufteilen:
- 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 eine Beispielzertifikatskette:
Zertifikatssubjekt und -aussteller überprüfen
In diesem Abschnitt wird beschrieben, wie Sie das Subjekt 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 das
SubjectundIssuerfür jedes Zertifikat in der Kette vonentityzurootabzurufen und zu prüfen, ob sie eine ordnungsgemäße Zertifikatskette bilden:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'Dabei ist „certificate“ der Name des Zertifikats.
-
Prüfen Sie, ob die Zertifikate in der Kette die folgenden Richtlinien einhalten:
-
Subjectjedes Zertifikats stimmt mit demIssuerdes vorherigen Zertifikats in der Kette überein (außer beimEntity-Zertifikat). -
SubjectundIssuersind für das Root-Zertifikat identisch.
Wenn die Zertifikate in der Kette diese Richtlinien einhalten, gilt die Zertifikatskette als vollständig und gültig.
Beispiel für die Validierung einer Zertifikatskette
Das folgende Beispiel zeigt die Ausgabe der OpenSSL-Befehle für eine Beispielzertifikatskette 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.comZwischenzertifikat
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 1O1Root-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 = GlobalSignBeachten Sie im obigen Beispiel Folgendes:
-
Das
Subjectdes Zwischenzertifikats stimmt mit demIssuerdes Entitätszertifikats überein. -
Das
Subjectdes Root-Zertifikats stimmt mit demIssuerdes Zwischenzertifikats überein. -
SubjectundIssuersind im Root-Zertifikat identisch.
Aus dem obigen Beispiel können Sie bestätigen, dass die Beispielzertifikatskette gültig ist.
-
Hash des Zertifikatssubjekts und -ausstellers überprüfen
In diesem Abschnitt wird erläutert, wie Sie den Hash des Subjekts und des Ausstellers der Zertifikate abrufen und prüfen, ob Sie eine gültige Zertifikatskette haben.
Es ist immer empfehlenswert, die Hash-Sequenz von Zertifikaten zu überprüfen, da dies bei der Identifizierung von Problemen helfen kann, z. B. wenn der allgemeine Name (Common Name, CN) des Zertifikats unerwünschte Leerzeichen oder Sonderzeichen enthält.
- Führen Sie den folgenden OpenSSL -Befehl aus, um die
hashSequenz für jedes Zertifikat in der Kette vonentityzurootabzurufen und zu prüfen, ob sie eine ordnungsgemäße Zertifikatskette bilden. - Prüfen Sie, ob die Zertifikate in der Kette die folgenden Richtlinien einhalten:
-
Subjectjedes Zertifikats stimmt mit demIssuerdes vorherigen Zertifikats in der Kette überein (außer beimEntity-Zertifikat). -
SubjectundIssuersind für das Root-Zertifikat identisch. -
Der
subject hashdes Zwischenzertifikats stimmt mit demissuer hashdes Entitäts zertifikats überein. -
Der
subject hashdes Root-Zertifikats stimmt mit demissuer hashdes Ausstellerzertifikats überein. -
subjectundissuer hashsind 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 diese Richtlinien einhalten, gilt die Zertifikatskette als vollständig und gültig.
Beispiel für die Validierung einer Zertifikatskette über die Hash-Sequenz
Das folgende Beispiel zeigt die Ausgabe der OpenSSL-Befehle für eine Beispielzertifikatskette 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:
Aus dem obigen Beispiel können Sie bestätigen, dass die Beispielzertifikatskette gültig ist.
Ablauf des Zertifikats überprüfen
In diesem Abschnitt wird erläutert, wie Sie mit einer der folgenden Methoden prüfen, ob alle Zertifikate in der Kette abgelaufen sind:
- Start- und Enddatum des Zertifikats abrufen.
- Ablaufstatus abrufen.
Start- und Enddatum
Führen Sie den folgenden OpenSSL -Befehl aus, um das Start- und Enddatum für jedes Zertifikat
in der Kette von entity zu root abzurufen und zu prüfen, ob alle Zertifikate
in der Kette gültig sind (Startdatum liegt vor dem heutigen Tag) und nicht abgelaufen sind.
Beispiel für die Validierung des Ablaufs von Zertifikaten anhand von 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 -Befehl aus, um zu prüfen, ob das Zertifikat bereits abgelaufen ist oder
in den 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 von Zertifikaten mit der Option „checkend“
Der folgende Befehl verwendet 0 seconds, um zu prüfen, ob das Zertifikat bereits
abgelaufen ist:
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.