HTTPS的流程 @(AT示例)(使用AT指令实现ota过程)

本文介绍了带SSL证书双向验证功能的HTTPS过程,包括基本流程。还列举了常见问题,如HTTP是否支持多连接、HTTPS使用方法、PDP激活及HTTP连接失败的恢复手段、HTTP大文件断点续传以及大文件可靠发送给MCU的AT流控等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

带SSL证书双向验证功能的HTTPS过程:


先看流程:

……… OK ……表示HTTP数据
AT+HTTPTERM 结束HTTP服务
OK

 AT+FSCREATE="ca.crt" 创建服务器端CA 证书文件 
 OK
AT+FSCREATE="client.crt" 创建客户端证书文件
 OK 
 AT+FSCREATE="client.key" 创建客户端密钥文件 
 OK 
 AT+FSWRITE="ca.crt",0,1024,15 文件长度1024字节只是举例,要根据实际填写。下同。 
> 这里输入CA证书文件 
OK 
 AT+FSWRITE="client.crt",0,128,10 
 > 这里输入客户端证书文件 
 OK 
 AT+FSWRITE="client.key",0,188,10 
 > 这里输入客户端密钥文件 
 OK 
 AT+SAPBR=3,1,"CONTYPE","GPRS" 
 OK 
 AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数 模块注册网络后会从网络自动获取<apn>并激活一个 PDP上下文,用于RNDIS上网使用(此<apn>可以通 过AT+CGDCONT?来查询),所以输入 AT+SAPBR=3,<cid>,"APN","" 即可,模块内部会按 照自动获取的<apn>来设置APN 
 OK 
 AT+SAPBR=1,1 
 OK 
 AT+SAPBR=2,1 
 +SAPBR: 1,1,010.169.179.213 OK 
 AT+SSLCFG="cacert",153,"ca.crt" 设置服务器CA 证书 SSL 上下文id,在TCP单链接的情况下缺省为0; 在HTTPS链接下为153,下同 
 OK 
 AT+SSLCFG="clientcert",153,"client.crt" 设置客户端证书 
 OK 
 AT+SSLCFG="clientkey",153,"client.key" 设置客户端KEY 
 OK 
 AT+SSLCFG="seclevel",153,2 设置安全等级 
 OK 
 AT+SSLCFG="ciphersuite",153,0X0035 设置加密套件 
 OK 
 AT+SSLCFG="clientrandom",153,01B12C31 41516171F5125652655546548293031 323334353637D 设置随机数 
OK 
 AT+HTTPINIT HTTP协议栈初始化
 OK 
 AT+HTTPPARA="CID",1 设置HTTP会话参数:CID 
 OK 
 AT+HTTPPARA="URL","https://**.***.***" 设置HTTP会话参数:URL 请写具体的网址,而不要照抄 
 OK 
 AT+HTTPACTION=0 GET 开始 
 OK 
 +HTTPACTION:0,200,1348 +HTTPACTION:0,200,1348 +HTTPACTION:0,200,1348 … … 出现这些URC上报表明GET数据成功,等待READ 
 AT+HTTPREAD 读取从HTTP 服务器GET的数据 
 +HTTPREAD:1592 ……………… OK …..表示HTTP数据 
 AT+HTTPTERM 结束HTTP服务 
 OK

常见问题 :

1、HTTP支持多连接吗
目前HTTP仅支持单连接,不支持多连接

2、HTTPS如何使用

本文主要描述了基本流程和异常处理,对于HTTPS使用方法没有做过多描述,这一部分,请自行参考AT手册HTTP章节下《使用方法举例》中的"带SSL证书验证功能的HTTPS流程"使用方法;支持的SSL参数,请自行参考AT+SSLCFG命令说明
如果SSL的参数配置不变,则每次开机运行过程中,仅设置一次即可

3、重试多次PDP,HTTP应用一直连接失败

如果重试多次PDP激活,PDP一直激活失败,或者HTTP一直请求应答失败,则尝试使用如下手段恢复:

1、使用RESET引脚复位模块

2、极端情况下,直接给模块断电,再上电,POWER KEY引脚拉低开机

4、HTTP如何下载大文件(断点续传)

在实际的应用场景中,可能需要下载一个非常大的文件,例如几百K字节、几M字节,但是4G模块中HTTP可用的内存缓冲区为300KB左右,当文件大小超过这个缓冲区时,就要使用断点续传功能来分段下载处理了。下面以“下载一个11975260字节的文件”为例,来说明如何使用断点续传功能(注意:本示例仅仅演示了正常流程的HTTP AT命令,完整流程以及异常处理流程请参考本文应用流程部分)

AT+HTTPINIT

 

OK

AT+HTTPPARA="URL","http://openluat-erp.oss-cn-hangzhou.aliyuncs.com/erp_site_file/product_file/sw_file_20230108162920\\wb.zip"

 

OK

AT+HTTPACTION=2

 

OK

 

+HTTPACTION: 2,200,0

AT+HTTPHEAD

 

+HTTPHEAD: 454

server: aliyunoss

date: thu, 16 jan 2023 06:50:58 gmt

content-type: application/zip

content-length: 11975260                            //此处的11975260表示文件总大小

connection: keep-alive

x-oss-request-id: 5e2007gfjd5hbe32353a92ae

accept-ranges: bytes

etag: "a5b9cc75c0f26413bbaf00a0fa952bb2"

last-modified: wed, 08 jan 2023 08:29:29 zhb

x-oss-object-type: normal

x-oss-hash-crc64ecma: 16925rger3319613

x-oss-storage-class: standard

content-md5: pbnmdcfgndfnf45gwcg+pursg==

x-oss-server-time: 111

 

OK

 

//如下指令,表示下载文件的第一个300KB数据

AT+HTTPPARA="BREAK",0

 

OK

AT+HTTPPARA="BREAKEND",307199

 

OK

AT+HTTPACTION=0

 

OK

 

+HTTPACTION: 0,206,307200

AT+HTTPREAD

 

+HTTPREAD: 307200

......                          //此处输出307200字节数据

OK

 //表示下载文件的第一个300KB数据完成



//如下指令,表示下载文件的第二个300KB数据

AT+HTTPPARA="BREAK",307200

 

OK

AT+HTTPPARA="BREAKEND",614399

 

OK

AT+HTTPACTION=0

 

OK

 

+HTTPACTION: 0,206,307200

AT+HTTPREAD

 

+HTTPREAD: 307200

......                          //此处输出307200字节数据

OK

 //表示下载文件的第二个300KB数据完成

//此处参考上文指令,一直循环读取文件的下一个300KB数据,直到读取结束

......

 

AT+HTTPTERM

 

OK

5、HTTP下载的大文件如何可靠的发送给MCU(AT流控)

在上面第四个问题指令里加入下面一段AT指令中,如下一段AT指令


AT+HTTPREAD

 

+HTTPREAD: 307200

......                          //此处输出307200字节数据

OK

详细参考官方AT手册指令:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值