Demostración de la autenticación mutua de coreHTTP - FreeRTOS

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.

El resultado del registro muestra la inicialización de la demostración AWS IoT, el establecimiento de la sesión TLS, las solicitudes HTTP POST y las métricas de memoria que indican la finalización satisfactoria de la demostración.

La consola AWS IoT genera una salida similar a la de la siguiente captura de pantalla.

AWS IoT consola que muestra el mensaje “Hola desde la consola AWS IoT” publicado en un tema el 20 de noviembre de 2020 a las 19:09:09 UTC.

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 freertos/demos/coreHTTP/ y en el sitio web de GitHub.

Conexión al servidor HTTP de AWS IoT

La función connectToServerWithBackoffRetries intenta establecer una conexión TLS con autenticación mutua con el servidor HTTP de AWS IoT. Si la conexión falla, se vuelve a intentar cuando se agota el tiempo de espera. El valor de tiempo de espera aumenta exponencialmente hasta que se alcanza el número máximo de intentos o se alcanza el valor de tiempo de espera máximo. La función RetryUtils_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 prvSendHttpRequest muestra cómo enviar una solicitud POST al servidor HTTP de AWS IoT. Para obtener más información sobre cómo realizar una solicitud a la API de REST en AWS IoT, consulte Protocolos de comunicación del dispositivo - HTTPS. La respuesta se recibe con la misma llamada a la API coreHTTP, HTTPClient_Send.