

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.

# Erstellen und Konfigurieren eines SSL-Zertifikats für die Backend-Authentifizierung in API Gateway
<a name="getting-started-client-side-ssl-authentication"></a>

 Sie können API Gateway verwenden, um ein SSL-Zertifikat zu generieren und dann dessen öffentlichen Schlüssel im Backend verwendet, um zu überprüfen, ob HTTP-API-Anfragen an Ihr Backend-System von API Gateway stammen. So kann Ihr HTTP-Backend nur Anfragen steuern und akzeptieren, die von Amazon API Gateway stammen – selbst wenn das Backend öffentlich zugänglich ist. 

**Anmerkung**  
 Einige Backend-Server unterstützen möglicherweise keine SSL-Client-Authentifizierung als API Gateway. Sie könnten einen SSL-Zertifikatsfehler zurückgeben. Eine Liste der inkompatiblen Backend-Server finden Sie unter [Wichtige Hinweise zu Amazon API Gateway](api-gateway-known-issues.md). 

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

**Topics**
+ [Client-Zertifikat über die API Gateway-Konsole generieren](#generate-client-certificate)
+ [Konfigurieren einer API für die Verwendung von SSL-Zertifikaten](#configure-api)
+ [Testaufruf zur Überprüfung der Konfiguration des Clientzertifikats](#test-invoke)
+ [Konfigurieren eines Backend-HTTPS-Servers zur Überprüfung des Clientzertifikats](#certificate-validation)
+ [Rotieren ablaufender Clientzertifikate](#certificate-rotation)
+ [Von API Gateway unterstützte Zertifizierungsstellen für HTTP- und HTTP-Proxy-Integrationen](api-gateway-supported-certificate-authorities-for-http-endpoints.md)

## Client-Zertifikat über die API Gateway-Konsole generieren
<a name="generate-client-certificate"></a>

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

1. Wählen Sie einen REST oder eine WebSocket API.

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

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

1.  (Optional) Geben Sie unter **Description (Beschreibung)** eine Beschreibung ein. 

1. Wählen Sie **Generate certificate** (Zertifikat generieren) aus, um das Zertifikat zu generieren. API Gateway generiert ein neues Zertifikat und gibt die neue Zertifikats-GUID zusammen mit dem PEM-kodierten öffentlichen Schlüssel zurück. 

Sie können eine API nun für die Verwendung des Zertifikats konfigurieren.

## Konfigurieren einer API für die Verwendung von SSL-Zertifikaten
<a name="configure-api"></a>

Bei diesen Anleitungen wird davon ausgegangen, dass Sie bereits abgeschlossen habe [Client-Zertifikat über die API Gateway-Konsole generieren](#generate-client-certificate).

1.  Erstellen oder öffnen Sie in der API Gateway Gateway-Konsole einen REST oder eine WebSocket API, für die Sie das Client-Zertifikat verwenden möchten. Stellen Sie sicher, dass die API für eine Stufe bereitgestellt wurde. 

1. Klicken Sie im Hauptnavigationsbereich auf **Stages** (Stufen).

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

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

1. Wählen Sie **Änderungen speichern ** aus.

Nachdem ein Zertifikat für die API ausgewählt und gespeichert wurde, verwendet API Gateway das Zertifikat für alle Aufrufe an HTTP-API-Integrationen in Ihrer API. 

## Testaufruf zur Überprüfung der Konfiguration des Clientzertifikats
<a name="test-invoke"></a>

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

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

1. Wählen Sie **Test** aus. 

 API Gateway nutzt das ausgewählte SSL-Zertifikat für das HTTP-Backend, um die API zu authentifizieren. 

## Konfigurieren eines Backend-HTTPS-Servers zur Überprüfung des Clientzertifikats
<a name="certificate-validation"></a>

Diese Anleitungen setzen voraus, dass Sie die in [Client-Zertifikat über die API Gateway-Konsole generieren](#generate-client-certificate) beschriebenen Aktionen ausgeführt und eine Kopie des Clientzertifikats heruntergeladen haben. Sie können ein Client-Zertifikat herunterladen, indem Sie [https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html) der API-Gateway-REST-API oder [https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html) der AWS CLI aufrufen. 

 Vor der Konfiguration eines Backend-HTTPS-Servers zur Überprüfung des SSL-Clientzertifikats von Amazon API Gateway müssen Sie den PEM-kodierten privaten Schlüssel und ein von einer vertrauenswürdigen Zertifizierungsstelle bereitgestelltes serverseitiges Zertifikat erhalten haben. 

Wenn der Name der Serverdomäne `myserver.mydomain.com` ist, muss der CNAME-Wert des Serverzertifikats `myserver.mydomain.com` oder `*.mydomain.com` sein. 

Zu den unterstützten Zertifizierungsstellen gehören [Let's Encrypt](https://letsencrypt.org/) oder eine der in [Von API Gateway unterstützte Zertifizierungsstellen für HTTP- und HTTP-Proxy-Integrationen](api-gateway-supported-certificate-authorities-for-http-endpoints.md) 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](http://expressjs.com/) können Sie die [client-certificate-auth](https://www.npmjs.com/package/client-certificate-auth)Module verwenden, um Client-Anfragen mit PEM-codierten Zertifikaten zu authentifizieren. 

Informationen zu anderen HTTPS-Servers finden Sie in der Dokumentation zum Server.

## Rotieren ablaufender Clientzertifikate
<a name="certificate-rotation"></a>

Das von API Gateway generierte Client-Zertifikat ist 365 Tage gültig. Sie müssen das Zertifikat rotieren, bevor ein Clientzertifikat auf einer API-Stufe abläuft, um Ausfallzeiten für die API zu vermeiden.

### Wechseln Sie ein ablaufendes Client-Zertifikat mithilfe des AWS-Managementkonsole
<a name="certification-rotation-console"></a>

Das folgende Verfahren zeigt, wie Sie ein Clientzertifikat in der Konsole für eine zuvor bereitgestellte API rotieren.

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

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

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

1. Wählen Sie unter der ausgewählten API **Stages** und wählen Sie dann eine Stufe aus.

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

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

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

### Rotieren Sie ein ablaufendes Client-Zertifikat mithilfe der AWS CLI
<a name="certificate-rotation-cli"></a>

 [Sie können das Ablaufdatum des Zertifikats überprüfen, indem Sie [clientCertificate:by-ID](https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html) der API Gateway Gateway-REST-API aufrufen oder den AWS CLI Befehl von aufrufen [get-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html)und die zurückgegebene Eigenschaft expirationDate überprüfen.](https://docs.aws.amazon.com/apigateway/latest/api/API_ClientCertificate.html#expirationDate)

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

1. Generieren Sie ein neues Client-Zertifikat, indem Sie [clientcertificate:generate](https://docs.aws.amazon.com/apigateway/latest/api/API_GenerateClientCertificate.html) der API Gateway REST API oder den Befehl von aufrufen. AWS CLI [generate-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/generate-client-certificate.html) In diesem Tutorial wird davon ausgegangen, dass die ID des neuen Clientzertifikats laute `ndiqef`.

1.  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.

1.  Aktualisieren Sie die API-Stufe, um das neue Client-Zertifikat zu verwenden, indem Sie [stage:update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) der API Gateway-REST-API mit der neuen Client-Zertifikat-ID (`ndiqef`) aufrufen:

   ```
   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"
       }
     ]
   }
   ```

   Sie können auch den [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)-Befehl verwenden.

   [Wenn Sie eine WebSocket API verwenden, verwenden Sie den Befehl update-stage. `apigatewayv2`](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-stage.html)

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

1.  Löschen Sie das alte Zertifikat von API Gateway, indem Sie [clientcertificate:delete](https://docs.aws.amazon.com/apigateway/latest/api/API_DeleteClientCertificate.html) der API Gateway Gateway-REST-API aufrufen und dabei die clientCertificateId (`a1b2c3`) des alten Zertifikats angeben:

   ```
   DELETE /clientcertificates/a1b2c3 
   ```

   Sie können auch den folgenden Befehl aufrufen: [delete-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-client-certificate.html)

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