CoreHTTP 双向身份验证演示 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CoreHTTP 双向身份验证演示

重要

此演示托管在 Amazon-FreeRTOS 存储库中,该存储库已过时。建议您创建新项目时从这里开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅亚马逊 FreeRTOS Github 存储库迁移指南

介绍

CoreHTTP(相互身份验证)演示项目向您展示了如何使用 TLS 建立与 HTTP 服务器的连接,并在客户端和服务器之间进行双向身份验证。本演示使用基于 mbedTLS 的传输接口实现来建立经过服务器和客户端验证的 TLS 连接,并演示了 HTTP 中的请求响应工作流程。

注意

要设置和运行 FreeRTOS 演示,请按照中的步骤操作FreeRTOS 入门

功能

此演示创建了单个应用程序任务,其示例显示了如何完成以下内容:

  • ConnectAmazon IoT 端点上的 HTTP 服务器。

  • 发送 POST 请求。

  • 收到回复。

  • 断开与服务器的连接。

完成这些步骤后,演示会生成类似于以下屏幕截图的输出。

Amazon IoT控制台将生成类似于以下屏幕截图的输出。

源代码组织

演示源文件已命名http_demo_mutual_auth.c,可以在freertos/demos/coreHTTP/目录和 GitHub网站上找到。

正在连接到Amazon IoT HTTP 服务器

connectToServerWithBackoffRetries函数尝试与Amazon IoT HTTP 服务器建立相互认证的 TLS 连接。如果连接失败,它会在超时后重试。在达到最大尝试次数或达到最大超时值之前,超时值会呈指数级增长。该RetryUtils_BackoffAndSleep函数提供指数递增的超时值,并在达到最大尝试次数RetryUtilsRetriesExhausted时返回。如果在配置的尝试次数后无法建立与代理的 TLS 连接,则该connectToServerWithBackoffRetries函数将返回失败状态。

发送 HTTP 请求并接收响应

prvSendHttp请求函数演示如何向Amazon IoT HTTP 服务器发送 POST 请求。有关向 REST API 发出请求的更多信息Amazon IoT,请参阅设备通信协议-HTTPS。响应是使用相同的 CoreHTTP API 调用收到的HTTPClient_Send