Generieren und konfigurieren Sie ein SSL Zertifikat für die Backend-Authentifizierung in Gateway API - APIAmazon-Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Generieren und konfigurieren Sie ein SSL Zertifikat für die Backend-Authentifizierung in Gateway API

Sie können API Gateway verwenden, um ein SSL Zertifikat zu generieren, und dann seinen öffentlichen Schlüssel im Backend verwenden, um zu überprüfen, ob HTTP Anfragen an Ihr Backend-System von Gateway stammen. API Auf diese Weise kann Ihr HTTP Backend nur Anfragen kontrollieren und annehmen, die von Amazon API Gateway stammen, auch wenn das Backend öffentlich zugänglich ist.

Anmerkung

Einige Backend-Server unterstützen die SSL Client-Authentifizierung möglicherweise nicht wie API Gateway und geben möglicherweise einen SSL Zertifikatsfehler zurück. Eine Liste der inkompatiblen Backend-Server finden Sie unter Wichtige Hinweise zu Amazon API Gateway.

Die von API Gateway generierten SSL Zertifikate sind selbstsigniert, und nur der öffentliche Schlüssel eines Zertifikats ist in der API Gateway-Konsole oder über den sichtbar. APIs

Generieren Sie ein Client-Zertifikat mithilfe der API Gateway-Konsole

  1. Öffnen Sie die API Gateway-Konsole unter https://console.aws.amazon.com/apigateway/.

  2. Wählen Sie ein RESTAPI.

  3. Wählen Sie im Hauptnavigationsfenster Client Certificates (Clientzertifikate).

  4. Wählen Sie auf der Seite Client Certificates (Clientzertifikate) die Option Generate certificate (Zertifikat generieren) aus.

  5. (Optional) Geben Sie unter Description (Beschreibung) eine Beschreibung ein.

  6. Wählen Sie Generate certificate (Zertifikat generieren) aus, um das Zertifikat zu generieren. APIGateway generiert ein neues Zertifikat und gibt das neue Zertifikat GUID zusammen mit dem PEM -codierten öffentlichen Schlüssel zurück.

Sie sind jetzt bereit, das Zertifikat zu konfigurieren und API zu verwenden.

Konfigurieren Sie an API für die Verwendung von SSL Zertifikaten

Bei diesen Anleitungen wird davon ausgegangen, dass Sie bereits abgeschlossen habe Generieren Sie ein Client-Zertifikat mithilfe der API Gateway-Konsole.

  1. Erstellen oder öffnen Sie in der API Gateway-Konsole ein Zertifikat, API für das Sie das Client-Zertifikat verwenden möchten. Stellen Sie sicher, dass API das in einer Phase bereitgestellt wurde.

  2. Klicken Sie im Hauptnavigationsbereich auf Stages (Stufen).

  3. Wählen Sie im Abschnitt Stage details (Stufendetails) die Option Edit (Bearbeiten) aus.

  4. Wählen Sie für Client certificate (Clientzertifikat) ein Zertifikat aus.

  5. Wählen Sie Änderungen speichern aus.

    Wenn das API zuvor in der API Gateway-Konsole bereitgestellt wurde, müssen Sie es erneut bereitstellen, damit die Änderungen wirksam werden. Weitere Informationen finden Sie unter Erstellen Sie eine Bereitstellung für ein REST API API In-Gateway.

Nachdem ein Zertifikat für ausgewählt API und gespeichert wurde, verwendet API Gateway das Zertifikat für alle Aufrufe von HTTP Integrationen in Ihrem. API

Testaufruf zur Überprüfung der Konfiguration des Clientzertifikats

  1. Wählen Sie eine API Methode. Wählen Sie die Registerkarte Test. Möglicherweise müssen Sie die rechte Pfeiltaste wählen, um die Registerkarte Test anzuzeigen.

  2. Wählen Sie für Client certificate (Clientzertifikat) ein Zertifikat aus.

  3. Wählen Sie Test aus.

APIGateway präsentiert das gewählte SSL Zertifikat für das HTTP Backend zur Authentifizierung von. API

Konfigurieren Sie einen HTTPS Backend-Server, um das Client-Zertifikat zu verifizieren

Diese Anleitungen setzen voraus, dass Sie die in Generieren Sie ein Client-Zertifikat mithilfe der API Gateway-Konsole beschriebenen Aktionen ausgeführt und eine Kopie des Clientzertifikats heruntergeladen haben. Sie können ein Client-Zertifikat herunterladen, indem Sie das API Gateway REST API oder clientcertificate:by-idget-client-certificatevon AWS CLI aufrufen.

Bevor Sie einen HTTPS Backend-Server zur Überprüfung des SSL Client-Zertifikats von API Gateway konfigurieren, müssen Sie den PEM -codierten privaten Schlüssel und ein serverseitiges Zertifikat erhalten haben, das von einer vertrauenswürdigen Zertifizierungsstelle bereitgestellt wird.

Wenn der Serverdomänenname lautetmyserver.mydomain.com, muss der CNAME Wert des Serverzertifikats oder sein. myserver.mydomain.com *.mydomain.com

Zu den unterstützten Zertifizierungsstellen gehören Let's Encrypt oder eine der in APIGateway-unterstützte Zertifizierungsstellen für HTTP und HTTP Proxyintegrationen in Gateway API aufgelisteten Stellen.

Angenommen, die Clientzertifikatdatei ist apig-cert.pem und der private Schlüssel und die Zertifikatdateien des Servers sind server-key.pem bzw. server-cert.pem. Für einen Node.js-Server im Backend können Sie den Server wie folgt konfigurieren:

var fs = require('fs'); var https = require('https'); var options = { key: fs.readFileSync('server-key.pem'), cert: fs.readFileSync('server-cert.pem'), ca: fs.readFileSync('apig-cert.pem'), requestCert: true, rejectUnauthorized: true }; https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(443);

Für eine Node-Express-App können Sie die client-certificate-authModule verwenden, um Client-Anfragen mit PEM -codierten Zertifikaten zu authentifizieren.

Informationen zu anderen HTTPS Servern finden Sie in der Dokumentation für den Server.

Rotieren ablaufender Clientzertifikate

Das von API Gateway generierte Client-Zertifikat ist 365 Tage gültig. Sie müssen das Zertifikat rotieren, bevor ein Client-Zertifikat auf einer API Stufe abläuft, um Ausfallzeiten für zu vermeidenAPI. Sie können das Ablaufdatum des Zertifikats überprüfen, indem Sie: by-id clientCertificatedes Gateways aufrufen API oder den Befehl AWS CLI von aufrufen und REST API die zurückgegebene Eigenschaft get-client-certificateüberprüfen. expirationDate

Gehen Sie folgendermaßen vor, um ein Clientzertifikat zu rotieren:

  1. Generieren Sie ein neues Client-Zertifikat, indem Sie clientcertificate:generate of the Gateway oder den Befehl von aufrufen. API REST API AWS CLI generate-client-certificate In diesem Tutorial wird davon ausgegangen, dass die ID des neuen Clientzertifikats laute ndiqef.

  2. Aktualisieren Sie den Backend-Server, sodass dieser das neue Clientzertifikat enthält. Entfernen Sie das vorhandene Clientzertifikat noch nicht.

    Einige Server erfordern möglicherweise einen Neustart, um die Aktualisierung abzuschließen. Informieren Sie sich in der Serverdokumentation, um festzustellen, ob Sie den Server während der Aktualisierung neu starten müssen.

  3. Aktualisieren Sie den API Stagingbereich so, dass er das neue Client-Zertifikat verwendet, indem Sie stage:update des API Gateways mit der neuen REST API Client-Zertifikat-ID () aufrufen: ndiqef

    PATCH /restapis/{restapi-id}/stages/stage1 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170603T200400Z Authorization: AWS4-HMAC-SHA256 Credential=... { "patchOperations" : [ { "op" : "replace", "path" : "/clientCertificateId", "value" : "ndiqef" } ] }

    oder indem Sie den CLI Befehl update-stage aufrufen.

  4. Aktualisieren Sie den Backend-Server, um das alte Zertifikat zu entfernen.

  5. Löschen Sie das alte Zertifikat von API Gateway, indem Sie clientcertificate:delete des API Gateways REST API aufrufen und dabei die clientCertificateId () a1b2c3 des alten Zertifikats angeben:

    DELETE /clientcertificates/a1b2c3

    oder indem Sie den folgenden Befehl aufrufen: CLI delete-client-certificate

    aws apigateway delete-client-certificate --client-certificate-id a1b2c3

Gehen Sie wie folgt vor, um ein Client-Zertifikat in der Konsole für ein zuvor API bereitgestelltes zu rotieren:

  1. Wählen Sie im Hauptnavigationsfenster Client Certificates (Clientzertifikate).

  2. Wählen Sie im Bereich Client Certificates ((Clientzertifikate) Generate certificate (Zertifikat generieren) aus.

  3. Öffnen Sie das, API für das Sie das Client-Zertifikat verwenden möchten.

  4. Wählen Sie unter den ausgewählten Stufen die Option Stufen aus API und wählen Sie dann eine Phase aus.

  5. Wählen Sie im Abschnitt Stage details (Stufendetails) die Option Edit (Bearbeiten) aus.

  6. Wählen Sie für Client certificate (Clientzertifikat) das neue Zertifikat aus.

  7. Wählen Sie zum Speichern der Einstellungen Save changes (Änderungen speichern).

    Sie müssen die erneut bereitstellen, API damit die Änderungen wirksam werden. Weitere Informationen finden Sie unter Erstellen Sie eine Bereitstellung für ein REST API API In-Gateway.