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.
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:
- 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.
- 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.
-
Wählen Sie das Menü
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.
-
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:
- Konfigurieren Sie die Clientumgebung zur Verwendung der CLI (Clientumgebung zur Verwendung der CLI für API-Gateway-Entwicklung konfigurieren).
-
So entfernen Sie ein benutzerdefiniertes CA- oder CA-Bundle aus dem Truststore eines API-Gateways:
-
Ö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
-
(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>
-
(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>
-
(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>
-
(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.