嵌入式技术论坛
直播中

王银喜

7年用户 2326经验值
私信 关注
[经验]

mbedTLS软件包用户手册示例程序简单说明

示例程序

该示例程序提供了一个简单的 TLS client,与测试网站建立 TLS 连接并获取加密数据。

示例文件

例程工作流程

本例程使用了 TLS 测试网站 www.howsmyssl.com,使用 mbedtls_client_write 函数发送 HTTP 测试请求,成功后,该网站会返回一段加密数据,测试例程将解析后的数据输出到控制台。

例程使用的 HTTP 请求数据如下所示`

1.jpg

mbedTLS 测试例程的基本工作流程如下所示

  • client连接外网 TLS 测试网站 www.howsmyssl.com
  • client 和 server 握手成功
  • client 发送请求
  • server 回应请求
  • TLS 测试成功/失败## 准备工作

获取软件包

打开 RT-Thread 提供的 ENV 工具,使用 menuconfig 配置软件包。

启用 mbedtls 软件包,并配置使能测试例程(Enable a mbedtls client example),如下所示:

SSL/TLS 服务器进行证书校验的过程中,会对当前发起校验请求的时间进行认证,如果时间不满足服务器的要求,就会校验证书失败。因此,我们需要为设备同步本地时间。

未同步过时间的设备输入 date 命令后如下所示:

shell
msh />date
Thu Jan 1 00:00:06 1970

使用 date 设置当前时间,如下所示:

shell
msh />date 2018 08 02 12 23 00
msh />date
Thu Aug 2 12:23:01 2018
msh />

该方式需要依赖 NTP 工具包,使用 menuconfig 配置获取,如下所示:

shell
RT-Thread online packages —->
IoT - internet of things —->
-- netutils: Networking utilities for RT-Thread —->
-- Enable NTP(Network Time Protocol) client
(8) Timezone for calculate local time
(cn.ntp.org.cn) NTP server name

使用命令 ntp_sync 同步网络时间

shell
msh />ntp_sync
Get local time from NTP server: Thu Aug 2 14:31:30 2018
The system time is updated. Timezone is 8.
msh />date
Thu Aug 2 14:31:34 2018

启动例程

在 MSH 中使用命令 tls_test 执行示例程序,成功建立 TLS 连接后,设备会从服务器拿到一组密码套件,设备 log 如下所示:

原作者:RT-Thread软件包手册

更多回帖

发帖
×
20
完善资料,
赚取积分