Zertifikatskette validieren

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

Bevor Sie das Zertifikat validieren, müssen Sie die Zertifikatskette in separate Zertifikate aufteilen. Gehen Sie dazu so vor:

  1. Melden Sie sich auf dem Server an, auf dem sich der OpenSSL-Client befindet.
  2. 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:

Zertifikatskette: Identitätszertifikat zum Zwischenzertifikat zum Stammzertifikat

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.

  1. Führen Sie den folgenden OpenSSL-Befehl aus, um Subject und Issuer für jedes Zertifikat in der Kette von entity bis root 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.

  2. Die Zertifikate in der Kette müssen den folgenden Richtlinien entsprechen:
    • Subject jedes Zertifikats stimmt mit dem Issuer des vorherigen Zertifikats in der Kette überein (außer dem Zertifikat Entity).
    • Subject und Issuer 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 dem Issuer des Entitätszertifikats überein.
    • Der Subject des Root-Zertifikats stimmt mit dem Issuer des Zwischenzertifikats überein.
    • Subject und Issuer 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.

  1. Führen Sie den folgenden OpenSSL aus, um die hash-Sequenz für jedes Zertifikat in der Kette von entity bis root abzurufen, und prüfen Sie, ob sie eine korrekte Zertifikatskette bilden.
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    Dabei ist certificate der Name des Zertifikats.

  3. Die Zertifikate in der Kette müssen den folgenden Richtlinien entsprechen:
    • Subject jedes Zertifikats stimmt mit dem Issuer des vorherigen Zertifikats in der Kette überein (außer dem Zertifikat Entity).
    • Subject und Issuer 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 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:

    • Der subject hash des Zwischenzertifikats stimmt mit dem issuer hash des Entitätszertifikats überein.
    • Der subject hash des Root-Zertifikats stimmt mit dem issuer hash des Ausstellerzertifikats überein.
    • subject und issuer hash sind im Root-Zertifikat identisch.

    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.