在物联网安全日益重要的今天,如何让嵌入式设备快速、安全地接入云端?本文带你用最简单的 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,从而一步到位,避免常见错误:

  1. AT+SSLCFG=“sslversion” 上下文 ID 固定匹配(十进制)

    • TCP 单链接 SSL:0
    • FTP 功能:34
    • MQTT 专用:88 AT+SSLCFG=“sslversion”,88,5
    • HTTP 专用:153 AT+SSLCFG=“sslversion”,153,5
  2. 连接指令严格区分

    • 普通 TCP 连接AT+MIPSTART=<地址>,<端口>
    • SSL/TLS 1.3 加密连接AT+SSLMIPSTART=<地址>,<端口>
      核心要点:在无需证书验证的场景下,仅需更换连接指令,其余流程与普通连接完全一致,实现零改造成本!

补充说明:指令 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)│
                 └─────────────────────────────────┘

Logo

一站式 AI 云服务平台

更多推荐