Demostración de la autenticación mutua de coreHTTP
importante
Esta demostración está alojada en el repositorio de Amazon-FreeRTOS, que está en desuso. Recomendamos empezar por aquí al crear un nuevo proyecto. Si ya tiene un proyecto FreeRTOS existente basado en el repositorio Amazon FreeRTOS, ahora obsoleto, consulte Guía de migración del repositorio Github de Amazon-FreeRTOS.
Introducción
El proyecto de demostración coreHTTP (Autenticación mutua) muestra cómo establecer una conexión con un servidor HTTP mediante TLS con autenticación mutua entre el cliente y el servidor. Esta demostración utiliza una implementación de interfaz de transporte basada en mbedTLS para establecer una conexión TLS autenticada por el servidor y el cliente, y muestra un flujo de trabajo de respuesta a solicitudes en HTTP.
nota
Para configurar y ejecutar las demostraciones de FreeRTOS, siga los pasos que se indican en Introducción a FreeRTOS.
Funcionalidad
Esta demostración crea una tarea de aplicación única con ejemplos que muestran cómo realizar lo siguiente:
-
Conectarse al servidor HTTP en el punto de conexión de AWS IoT.
-
Enviar una solicitud POST.
-
Recibir la respuesta.
-
Desconectarse del servidor.
Tras completar estos pasos, la demostración genera una salida similar a la de la siguiente captura de pantalla.
La consola AWS IoT genera una salida similar a la de la siguiente captura de pantalla.
Organización del código fuente
El archivo fuente de la demostración se llama http_demo_mutual_auth.c y se puede encontrar en el directorio y en el sitio web de GitHubfreertos/demos/coreHTTP/
Conexión al servidor HTTP de AWS IoT
La función connectToServerWithBackoffRetriesRetryUtils_BackoffAndSleep proporciona valores de tiempo de espera que aumentan exponencialmente y devuelve RetryUtilsRetriesExhausted cuando se alcanza el número máximo de intentos. La función connectToServerWithBackoffRetries devuelve un estado de error si no se puede establecer la conexión TLS con el agente tras el número de intentos configurado.
Envío de una solicitud HTTP y recepción de la respuesta
La función prvSendHttpRequestHTTPClient_Send.