Truststores für TLS-Zertifikatsverifizierung anpassen

Erfahren Sie, wie Sie Zertifikatsautoritäten (CAs) und CA-Bundles mit API Gateway zu benutzerdefinierten Trust Stores hinzufügen.

Die API-Gateways, die Sie mit dem API-Gateway-Service erstellen, prüfen TLS-Zertifikate, die ihnen mit einem Truststore präsentiert werden. Der Truststore kann Certificate Authority-(CA-)Root-Zertifikate und CA-Bundles mit Root- und Zwischenzertifikaten enthalten. Dem Truststore jedes API-Gateways wird ein Standard-CA-Bundle hinzugefügt, das Zertifikate bekannter öffentlicher CAs enthält. Mit dem Standard-CA-Bundle kann das API-Gateway TLS-Zertifikate prüfen, die von Backend-Services angezeigt werden.

Zusätzlich zum Standard-CA-Bundle können Sie die Root-Zertifikate anderer CAs und anderer CA-Bundles dem Truststore eines API-Gateways hinzufügen. Diese zusätzlichen CAs und CA-Bundles werden als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles bezeichnet. Um dem Truststore eines API-Gateways ein benutzerdefiniertes CA- oder CA-Bundle hinzuzufügen, müssen Sie zuerst eine CA-Ressource oder CA-Bundle-Ressource im Certificates-Service erstellen. Nachdem Sie die Ressource im Certificates-Service erstellt haben, können Sie sie dem Truststore des API-Gateways hinzufügen. Durch das Hinzufügen von benutzerdefinierten CAs und CA-Bundles können Sie den Truststore an Ihre Anforderungen anpassen.

Nachdem Sie benutzerdefinierte CAs und CA-Bundles zum Truststore hinzugefügt haben, werden TLS-Verbindungen zum API-Gateway (einschließlich von HTTPS-Backends und aus dem Antwortcache) mit dem Standard-CA-Bundle sowie den benutzerdefinierten CAs und CA-Bundles verifiziert. Wenn Sie die mTLS-Unterstützung für ein API-Deployment angegeben haben, verwendet das API-Gateway außerdem benutzerdefinierte CAs und benutzerdefinierte CA-Bundles, um API-Clientzertifikate zu prüfen. Beachten Sie, dass das API-Gateway das Standard-CA-Bundle nicht verwendet, um API-Clientzertifikate während eines mTLS-Handshakes zu verifizieren. Wenn also ein API-Gateway mTLS unterstützen soll, müssen Sie dem Truststore des API-Gateways benutzerdefinierte CAs und CA-Bundles hinzufügen

Für einige Kunden ist es aus Sicherheitsgründen obligatorisch, benutzerdefinierte Truststores zu verwenden, die nur private CAs und keine öffentlichen CAs enthalten. Für andere Kunden ist die Verwendung benutzerdefinierter Trust Stores wahrscheinlich von kommerziellen Anforderungen abhängig.

Benutzerdefinierte CAs und CA-Bundles zum Truststore eines API-Gateways hinzufügen

Um den Truststore eines API-Gateways durch Hinzufügen eines benutzerdefinierten Certificate Authority-(CA-) oder CA-Bundles anzupassen, erstellen Sie zuerst eine Certificate Authority-(CA-)Ressource oder CA-Bundle-Ressource im Certificates-Service, und fügen Sie sie dann dem Truststore des API-Gateways hinzu.

Schritt 1: CA-Ressource und/oder CA-Bundle-Ressource im Certificates-Service erstellen

Befolgen Sie die Anweisungen in der Dokumentation des Certificates-Service, um eine Certificate Authority-(CA-)Ressource und/oder eine CA-Bundle-Ressource zu erstellen

Schritt 2: CA-Ressource oder CA-Bundle-Ressource zum Truststore eines API-Gateways hinzufügen

So fügen Sie beim Erstellen oder Aktualisieren des API-Gateways eine Certificate Authority-(CA-)Ressource oder CA-Bundle-Ressource zum Truststore eines API-Gateways hinzu:

  1. Befolgen Sie die Anweisungen unter API-Gateways erstellen oder API-Gateways aktualisieren, um ein API-Gateway mit der Konsole oder der CLI zu erstellen oder zu aktualisieren.
  2. Geben Sie die CA-Ressource und/oder CA-Bundle-Ressource aus dem Certificates-Service an, die dem Truststore des API-Gateways hinzugefügt werden soll, wie in den folgenden Anweisungen beschrieben:

    • Bei Verwendung der Konsole: Wählen Sie im Abschnitt Erweiterte Optionen des Dialogfelds Gateway erstellen oder Gateway bearbeiten die Option Zertifikatsautoritäten hinzufügen aus, und wählen Sie mindestens eine CA-Ressource oder CA-Bundle-Ressource aus, die dem Truststore des API-Gateways als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles hinzugefügt werden sollen (zusätzlich zum Standard-CA-Bundle).
    • Bei Verwendung der CLI: Setzen Sie das Argument --ca-bundles file:///<filename> auf den Namen einer Datei mit Details zu mindestens einer CA-Ressource oder CA-Bundle-Ressource, die dem Truststore des API-Gateways als benutzerdefinierte CAs und benutzerdefinierte CA-Bundles hinzugefügt werden sollen (zusätzlich zum Standard-CA-Bundle). Geben Sie die Details in gültiger JSON im folgenden Format an:
      [
        {
          "type": "CA_BUNDLE",
          "caBundleId": "ocid1.cabundle..."
        },
        {
          "type": "CERTIFICATE_AUTHORITY",
          "certificateAuthorityId": "ocid1.cabundle..."
        }
      ]

    Der API-Gateway-Service erstellt oder aktualisiert das API-Gateway mit einem Truststore, der neben dem Standard-CA-Bundle das angegebene benutzerdefinierte CA- und/oder CA-Bundle enthält.

Benutzerdefinierte CAs und CA-Bundles aus dem Truststore eines API-Gateways entfernen

Nachdem Sie dem Truststore eines API-Gateways ein benutzerdefiniertes Certificate Authority-(CA-) oder CA-Bundle hinzugefügt haben, können Sie entscheiden, dass das CA- oder CA-Bundle nicht mehr erforderlich ist.

Sie können einige oder alle benutzerdefinierten CAs und CA-Bundles aus dem Truststore eines API-Gateways entfernen, vorausgesetzt, es sind keine mTLS-fähigen APIs im API-Gateway bereitgestellt. Wenn eine oder mehrere mTLS-fähige APIs im API-Gateway bereitgestellt sind, muss immer mindestens ein benutzerdefiniertes CA- oder CA-Bundle im Truststore des API-Gateways vorhanden sein.

Konsole verwenden

So entfernen Sie ein benutzerdefiniertes CA- oder CA-Bundle mit der Konsole aus dem Truststore eines API-Gateways:

  1. Wählen Sie auf der Listenseite Gateways das API-Gateway aus, aus dem Sie das benutzerdefinierte CA- oder CA-Bundle entfernen möchten. Wenn Sie Hilfe beim Suchen der Listenseite oder des API-Gateways benötigen, finden Sie weitere Informationen unter API-Gateways auflisten.
  2. Wählen Sie auf der Seite Gatewaydetails in der Liste Ressourcen die Option Certificate Authoritys aus, um die benutzerdefinierten CA- und CA-Bundles im Truststore des API-Gateways anzuzeigen.
  3. Wählen Sie das Menü Aktionen (drei Punkte) neben dem benutzerdefinierten CA- oder CA-Bundle, das Sie entfernen möchten, und Entfernen aus.

    Beachten Sie, dass Sie nicht alle benutzerdefinierten CAs und CA-Bundles aus dem Truststore eines API-Gateways entfernen können, wenn eine oder mehrere mTLS-fähige APIs im API-Gateway bereitgestellt sind.

  4. Bestätigen Sie, dass Sie das benutzerdefinierte CA- oder CA-Bundle aus dem Truststore des API-Gateways entfernen möchten.

CLI verwenden

So entfernen Sie ein benutzerdefiniertes CA- oder CA-Bundle mit der CLI aus dem Truststore eines API-Gateways:

  1. Konfigurieren Sie die Clientumgebung zur Verwendung der CLI (Clientumgebung zur Verwendung der CLI für API-Gateway-Entwicklung konfigurieren).
  2. So entfernen Sie ein benutzerdefiniertes CA- oder CA-Bundle aus dem Truststore eines API-Gateways:

    1. Öffnen Sie eine Eingabeaufforderung, und führen Sie oci API-gateway gateway update aus, um das benutzerdefinierte CA- oder CA-Bundle aus dem Truststore des API-Gateways zu entfernen:

      oci api-gateway gateway update --gateway-id <gateway-ocid> --ca-bundles file:///<filename>

      Dabei ist <filename> der Name einer Datei, die nur Details dieser benutzerdefinierten CAs und benutzerdefinierten CA-Bundles enthält, die im Truststore des API-Gateways beibehalten werden sollen (zusätzlich zum Standard-CA-Bundle). CAs oder CA-Bundles, die nicht in der Datei enthalten sind, werden aus dem Truststore entfernt.

      Beispiel:

      oci api-gateway gateway update --gateway-id ocid1.apigateway.oc1..aaaaaaaab______hga --ca-bundles file:///bundles-to-keep.json

      Beachten Sie, dass Sie nicht alle benutzerdefinierten CAs und CA-Bundles aus dem Truststore eines API-Gateways entfernen können, wenn eine oder mehrere mTLS-fähige APIs im API-Gateway bereitgestellt sind.

      Die Antwort auf den Befehl umfasst Folgendes:

      • Den Lebenszyklusstatus (Beispiel: DELETED, FAILED).
      • Die ID der Arbeitsanforderung zum Entfernen der benutzerdefinierten CAs oder CA-Bundles (Details der Arbeitsanforderungen sind für sieben Tage nach Abschluss, Abbruch oder Fehler verfügbar).

      Wenn der Befehl die Kontrolle bis zum Entfernen der benutzerdefinierten CAs oder CA-Bundles warten soll (oder die Anforderung war nicht erfolgreich), nehmen Sie einen oder beide der folgenden Parameter auf:

      • --wait-for-state DELETED
      • --wait-for-state FAILED

      Beispiel:

      oci api-gateway gateway update --gateway-id ocid1.apigateway.oc1..aaaaaaaab______hga --ca-bundles file:///bundles-to-keep.json --wait-for-state DELETED
    2. (Optional) Um den Status der Arbeitsanforderung anzuzeigen, die das benutzerdefinierte CA- oder CA-Bundle entfernt, geben Sie Folgendes ein:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    3. (Optional) Um die Logs der Arbeitsanforderung anzuzeigen, die das benutzerdefinierte CA- oder CA-Bundle entfernt, geben Sie Folgendes ein:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    4. (Optional) Wenn die Arbeitsanforderung, die das benutzerdefinierte CA- oder CA-Bundle entfernt, nicht erfolgreich ist und Sie die Fehlerlogs prüfen möchten, geben Sie Folgendes ein:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>
    5. (Optional) Um zu prüfen, ob das benutzerdefinierte CA- oder CA-Bundle aus dem Truststore des API-Gateways entfernt wurde, geben Sie den folgenden Befehl ein, und bestätigen Sie, dass das benutzerdefinierte CA- oder CA-Bundle nicht mehr angezeigt wird:

      oci api-gateway gateway get --gateway-id <gateway-ocid>

Weitere Informationen zur Verwendung der CLI finden Sie unter Befehlszeilenschnittstelle (CLI). Eine vollständige Liste der Flags und Optionen, die für CLI-Befehle verfügbar sind, finden Sie in der CLI-Hilfe.

API verwenden

Informationen zur Verwendung der API und zu Signieranforderungen finden Sie unter REST-API-Dokumentation und Sicherheitszugangsdaten. Informationen zu SDKs finden Sie unter SDKs und die CLI.

Mit dem Vorgang UpdateGateway können Sie nur die benutzerdefinierten CAs und benutzerdefinierten CA-Bundles angeben, die im Truststore des API-Gateways beibehalten werden sollen (zusätzlich zum Standard-CA-Bundle). Nicht angegebene CAs oder CA-Bundles werden aus dem Truststore entfernt. Beachten Sie, dass Sie nicht alle benutzerdefinierten CAs und CA-Bundles aus dem Truststore eines API-Gateways entfernen können, wenn eine oder mehrere mTLS-fähige APIs im API-Gateway bereitgestellt sind.