- 设置特定分区存储证书文件
- 多证书文件管理
- 证书格式转换
- 将证书下载到 Flash
- 使用对应的证书文件
1、设置特定分区存储证书文件
在项目工程分区表文件中定义证书文件分区,如下:
- 如上,转换的
certificate.bin
下载地址就为0x41000
- 证书固件的大小为
300 KB
,需要确保分区不重叠, bin 文件大小满足 Flash Size 设置
2、多证书文件管理
- 客户工程下创建一个 customized 文件夹
- 在 customized 文件夹目录下创建 certificate 文件夹和 certificate.csv 文件
- 在
certificate
文件夹下存放各种证书文件,例如server_ca.crt
、server_cert.crt
、server.key
- 在
certificate.csv
文件下,按照如下格式指定各种证书的文件路径:
key,type,encoding,value
server_cert,namespace,,
server_cert,file,binary,E:\esp\test\customized\server_cert\server_cert.crt
server_key,namespace,,
server_key,file,binary,E:\esp\test\customized\server_key\server.key
server_ca,namespace,,
server_ca,file,binary,E:\esp\test\customized\server_ca\server_ca.crt
支持被管理的文件类型参见:CSV 文件格式 说明。
- 不同的存储类型,需要设置不同的
Encoding
3、证书格式转换
- 使用 esp-idf/components/nvs_flash/nvs_partition_generator 文件下的
nvs_partition_gen.py
脚本工具
将 E:\esp\test\customized\certificate.csv
文件转换为 certificate.bin
格式
NVS 脚本工具使用说明参见“NVS 分区生成程序”
指令为:
python nvs_partition_gen.py generate E:\esp\test\customized\certificate.csv certificate.bin 0x4B000
0x4B000
为转换的 bin 文件大小
4、将证书下载到 Flash
如上分区表设置,转换的 certificate.bin
下载地址就为 0x41000
,直接使用 Flash 下载工具下载 certificate.bin
文件即可
- 若需要替换新的证书文件,只需要对应替换
E:\esp\test\customized\certificate
文件夹下的证书文件,然后使用nvs_partition_gen.py
脚本工具来进行证书文件格式转换为 bin 固件 - 可不需要将新的证书放到工程下重新编译工程来获取证书固件(bin 文件)
5、使用对应的证书文件
当应用程序中需要使用证书文件时,使用 nvs_open_from_partition API 来获取证书文件,对应参数设置如下: