

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.

# Demo zur gegenseitigen CoreHTTP-Authentifizierung
<a name="core-http-ma-demo"></a>

**Wichtig**  <a name="deprecation-message-demo"></a>
Diese Demo wird im Amazon-FreeRTOS-Repository gehostet, das veraltet ist. Wir empfehlen, dass Sie [hier beginnen](freertos-getting-started-modular.md), wenn Sie ein neues Projekt erstellen. Wenn Sie bereits ein vorhandenes FreeRTOS-Projekt haben, das auf dem inzwischen veralteten Amazon-FreeRTOS-Repository basiert, finden Sie weitere Informationen unter. [Leitfaden zur Migration des Amazon-FreerTOS Github-Repositorys](github-repo-migration.md)

## Einführung
<a name="core-http-ma-demo-intro"></a>

Das CoreHTTP-Demoprojekt (Mutual Authentication) zeigt Ihnen, wie Sie mithilfe von TLS eine Verbindung zu einem HTTP-Server mit gegenseitiger Authentifizierung zwischen dem Client und dem Server herstellen. Diese Demo verwendet eine MbedTLS-basierte Transportschnittstellenimplementierung, um eine server- und clientauthentifizierte TLS-Verbindung herzustellen, und demonstriert einen Anforderungsantwort-Workflow in HTTP.

**Anmerkung**  
Folgen Sie den Schritten unter, um die FreeRTOS-Demos einzurichten und auszuführen. [Erste Schritte mit FreeRTOS](freertos-getting-started.md)

## Funktionalität
<a name="core-http-ma-demo-functionality"></a>

Diese Demo erstellt eine einzelne Anwendungsaufgabe mit Beispielen, die zeigen, wie Sie Folgendes ausführen können:
+ Connect zum HTTP-Server auf dem AWS IoT Endpunkt her.
+ Senden Sie eine POST-Anfrage.
+ Empfangen Sie die Antwort.
+ Trennen Sie die Verbindung zum Server.

Nachdem Sie diese Schritte abgeschlossen haben, generiert die Demo eine Ausgabe, die der folgenden Abbildung ähnelt.

![Protokollausgabe mit AWS IoT Demo-Initialisierung, Einrichtung der TLS-Sitzung, HTTP-POST-Anfragen und Speichermetriken, die auf einen erfolgreichen Abschluss der Demo hinweisen.](http://docs.aws.amazon.com/de_de/freertos/latest/userguide/images/coreHTTP.output.png)


Die AWS IoT Konsole generiert eine Ausgabe, die der folgenden Abbildung ähnelt.

![AWS IoT Konsole mit der Nachricht „Hallo von der AWS IoT Konsole“, veröffentlicht zu einem Thema am 20. November 2020 um 19:09:09 UTC.](http://docs.aws.amazon.com/de_de/freertos/latest/userguide/images/coreHTTP.console.png)


## Organisation des Quellcodes
<a name="core-http-s3-ma-demo-source-code-organization"></a>

Die Demo-Quelldatei ist benannt `http_demo_mutual_auth.c` und befindet sich im `{{freertos}}/demos/coreHTTP/` Verzeichnis und auf der [ GitHub](https://github.com/aws/amazon-freertos/blob/main/demos/coreHTTP/http_demo_mutual_auth.c)Website.

## Verbindung zum AWS IoT HTTP-Server herstellen
<a name="core-http-ma-demo-connecting"></a>

Die [ connectToServerWithBackoffRetries](https://github.com/aws/amazon-freertos/blob/main/demos/common/http_demo_helpers/http_demo_utils.c#L131-L170)Funktion versucht, eine gegenseitig authentifizierte TLS-Verbindung zum AWS IoT HTTP-Server herzustellen. Wenn die Verbindung fehlschlägt, versucht sie es nach einem Timeout erneut. Der Timeout-Wert steigt exponentiell an, bis die maximale Anzahl von Versuchen oder der maximale Timeout-Wert erreicht ist. Die `RetryUtils_BackoffAndSleep` Funktion liefert exponentiell steigende Timeout-Werte und kehrt zurück, `RetryUtilsRetriesExhausted` wenn die maximale Anzahl von Versuchen erreicht wurde. Die `connectToServerWithBackoffRetries` Funktion gibt einen Fehlerstatus zurück, wenn die TLS-Verbindung zum Broker nach der konfigurierten Anzahl von Versuchen nicht hergestellt werden kann.

## Senden einer HTTP-Anfrage und Empfangen der Antwort
<a name="core-http-ma-demo-send-receive"></a>

Die [ prvSendHttpRequest-Funktion](https://github.com/aws/amazon-freertos/blob/main/demos/coreHTTP/http_demo_mutual_auth.c#L402-L507) demonstriert, wie eine POST-Anfrage an den AWS IoT HTTP-Server gesendet wird. Weitere Informationen zum Stellen einer Anfrage an die REST-API finden Sie unter [Gerätekommunikationsprotokolle — HTTPS](https://docs.aws.amazon.com/iot/latest/developerguide/http.html). AWS IoT Die Antwort wird mit demselben CoreHTTP-API-Aufruf empfangen,`HTTPClient_Send`. 