域格模块使用TLS1.3(AT指令版本)
·
在物联网安全日益重要的今天,如何让嵌入式设备快速、安全地接入云端?本文带你用最简单的 AT 指令,零代码实现 TLS 1.3 加密通信,同时搞定 MQTT 与 HTTP 两种主流协议。
🌐 为什么物联网设备需要 TLS 1.3?
一个真实的安全隐患
想象一下:你的智能设备正在向云端上报数据,如果这些数据是"明信片"(明文传输),路上任何一个"邮差"都能偷看、篡改内容:
一、什么是 TLS 1.3?
1.1 先理解什么是 TLS
TLS(Transport Layer Security,传输层安全协议) 是给网络通信"加密"的一套规则。
当你用浏览器访问 https://www.baidu.com 时,那个 s 就代表用了 TLS 加密。
1.2 TLS 1.3 相比 TLS 1.2 的改进
| 方面 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| 握手次数 | 2 次往返(2-RTT) | 1 次往返(1-RTT),甚至支持 0-RTT |
| 速度 | 慢 | 快约 40% |
| 加密算法 | 支持一些老旧弱算法 | 只保留强算法(如 AES-GCM、ChaCha20) |
| 密钥交换 | RSA、DH 等多种 | 只用 ECDHE(前向保密) |
| 安全性 | 高 | 更高(移除了已知弱点) |
TLS 1.3 就是更快、更安全的加密通信协议版本。
二、模块AT指令使用tls1.3
2.1 核心配置注意点
在开始配置前,请务必掌握以下两个关键要点。它们能帮助你清晰区分普通连接与 SSL 加密连接,精准匹配协议上下文 ID,从而一步到位,避免常见错误:
-
AT+SSLCFG=“sslversion” 上下文 ID 固定匹配(十进制)
- TCP 单链接 SSL:0
- FTP 功能:34
- MQTT 专用:88 AT+SSLCFG=“sslversion”,88,5
- HTTP 专用:153 AT+SSLCFG=“sslversion”,153,5
-
连接指令严格区分
- 普通 TCP 连接:
AT+MIPSTART=<地址>,<端口> - SSL/TLS 1.3 加密连接:
AT+SSLMIPSTART=<地址>,<端口>
✅ 核心要点:在无需证书验证的场景下,仅需更换连接指令,其余流程与普通连接完全一致,实现零改造成本!
- 普通 TCP 连接:
补充说明:指令
AT+SSLCFG="sslversion",n,5中的末尾参数5即代表启用 TLS 1.3。
二、MQTT over TLS1.3 安全建连
MQTT作为物联网轻量级通信协议,搭配TLS1.3,低功耗+高安全双在线,完美适配设备消息订阅、状态上报,实测指令流程如下:
# 基础指令校验
AT
OK
# MQTT基础配置(客户端ID/用户名/密码)
AT+MCONFIG=11119999,11119999,11119999
OK
# 配置TLS1.3,绑定MQTT专属SSL ID=88
AT+SSLCFG="sslversion",88,5
OK
# 建立SSL加密连接(无证书验证)
AT+SSLMIPSTART=***.aiqab.com,8443
OK
CONNECT OK
# 激活MQTT连接,心跳120秒
AT+MCONNECT=1,120
OK
CONNACK OK
指令详解
| 指令 | 作用 | 参数说明 |
|---|---|---|
AT+MCONFIG |
配置 MQTT 客户端 | ClientID、用户名、密码 |
AT+SSLCFG |
设置 SSL 版本 | 88=MQTT 上下文,5=TLS 1.3 |
AT+SSLMIPSTART |
建立 SSL 连接 | 服务器地址、端口 |
AT+MCONNECT |
MQTT 登录 | 1=clean session,120=心跳秒数 |
流程图解
┌─────────────┐ AT 指令 ┌──────────────┐
│ 主控 MCU │ ───────────────→ │ 通信模组 │
└─────────────┘ └──────┬───────┘
│
TLS 1.3 加密通道
│
▼
┌──────────────────┐
│ yaohe.****.com │
│ :8443 (MQTT) │
└──────────────────┘
三、HTTP over TLS 1.3
场景描述
设备通过 HTTPS(POST 请求)调用云端 API https://****.aiqab.com/api_server/box/getInfo,并携带 JSON 数据。
完整 AT 指令流程
AT+HTTPINIT ← 初始化 HTTP 服务
OK
AT+HTTPSSL=1 ← 开启 HTTP 的 SSL 功能(1=启用)
OK
AT+SSLCFG="sslversion",153,5 ← 设置 HTTP 的 SSL 版本为 TLS 1.3(153=HTTP上下文,5=TLS1.3)
OK
AT+HTTPPARA="CID",1 ← 设置 HTTP 会话 ID
OK
AT+HTTPPARA="URL","https://***.aiqab.com/api_server/box/getInfo"
← 设置请求 URL
OK
AT+HTTPPARA="USERDATA","Content-Type:application/json"
← 设置请求头(JSON 格式)
OK
AT+HTTPDATA=217,10000 ← 准备上传 217 字节数据,超时 10 秒
DOWNLOAD ← 模组进入下载等待状态
← (此处向串口写入 217 字节的 JSON body)
OK
AT+HTTPACTION=1 ← 执行 HTTP POST 请求(1=POST)
OK
+HTTPACTION: 1,200,49 ← 收到响应:POST 方法,HTTP 200,响应体 49 字节
指令详解
| 指令 | 作用 | 关键参数 |
|---|---|---|
AT+HTTPINIT |
初始化 HTTP | 无参数 |
AT+HTTPPARA="CID" |
设置会话 ID | 1=会话编号 |
AT+HTTPPARA="URL" |
设置请求地址 | 完整 HTTPS URL |
AT+HTTPPARA="USERDATA" |
设置请求头 | 如 Content-Type:application/json |
AT+HTTPDATA |
上传请求体 | 数据长度、超时时间(ms) |
AT+HTTPACTION |
触发请求 | 0=GET,1=POST |
响应解析
+HTTPACTION: <method>,<status_code>,<data_length>
│ │ │
│ │ └── 响应体字节数
│ └── HTTP 状态码(200=成功)
└── 请求方法(1=POST)
🎯 完整应用场景:MQTT + HTTP 双通道
在实际物联网项目中,往往需要 MQTT 做实时通信 + HTTP 做接口调用,本方案支持同时使用两种协议,全部走 TLS 1.3 加密:
┌───────────────────────────┐
│ 主控 MCU(你的应用) │
└────────────┬──────────────┘
│ AT 指令
▼
┌───────────────────────────┐
│ 通信模组 │
│ ┌─────────────────────┐ │
│ │ TLS 1.3 加密引擎 │ │
│ └──────────┬──────────┘ │
└─────────────┼─────────────┘
┌───────┴───────┐
│ │
┌─────▼─────┐ ┌─────▼─────┐
│ MQTT 通道 │ │ HTTP 通道 │
│ (上下文88)│ │ (上下文153)│
└─────┬─────┘ └─────┬─────┘
│ │
▼ ▼
┌─────────────────────────────────┐
│ 云端服务器 yaohe.****.com │
│ MQTT(:8443) HTTPS API(:8443)│
└─────────────────────────────────┘
更多推荐



所有评论(0)