5A-ESP8266__SDK__SSL_User_Manual__CN.pages

Similar documents
BT&BLE_Coexistence_Demo__CN.pages

<453A5CCEC4B5B55C C41CBAAB2F5D4C6BDD3BFDACAB9D3C3CBB5C3F756312E305F E646F63>

4B-ESP8266__AT Command Examples__CN.pages

ESP-TOUCH_User_Guide__CN.pages

ESP-Jumpstart

0C-ESP-WROOM-02_Datasheet_CN.pages

Intruduction to the NGINX stream subsystem and OpenResty's support

ESP-PSRAM64_ESP-PSRAM64H_Datasheet__CN

ESP-WROOM-02D_ESP-WROOM-02U_Datasheet_CN.pages

Microsoft Word - SC700003SS1-SCICALA霜蝉云接口使用说明V1.0.1_ docx

untitled

EPSON

校友会系统白皮书feb_08

Adobe AIR 安全性

ESP32-LyraT_User_Guide__CN.pages

「醫院總額支付委員會」第25次會議紀錄( )

EPSON

DU Ad Platform_SDK for Android 接 入 手册 Version: DuWeatherSDK_1.1.6 前提 : DuWeather SDK 需要依赖 DU Ad Platform_SDK HW 或 CW ( 含 ) 以上版本 在接 入 DuW

AS北京2017-《知乎 Feed 流构架演进》-姚钢强.key

EPSON

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Chapter #

新美大酒店开放平台SDK(.NET版)使用说明.pages

untitled

三武一宗灭佛研究

Chap06

OpenResty在又拍云容器平台中的应用

2A-ESP8266-SDK__Getting_Started_Guide__CN.pages

ESP8089_Datasheet__CN

Nodemcu-32s WIFI 模组 V1 Nodemcu-32s 规格书 版本 V1 版权 2019 Copyright 2019 Shenzhen Ai-Thinker Technology Co., Ltd All Rights Reserved

python_free

(CSR)...2 CA CA CA CA Base64 CA CA SSL

ESP32_FAQs__CN

ac2017-joeyguo-2.0.key

EPSON

营 销 策 划 岗 部 门 招 聘 职 位 招 聘 人 数 岗 位 职 责 基 本 要 求 岗 位 任 职 要 求 6 参 与 项 目 产 品 研 究 客 户 需 求 研 究 竞 争 环 境 研 究 价 格 研 究 等 项 目 市 场 研 究 ; 7 公 司 经 纪 业 务 的 品 牌 管 理, 对

FileMaker 15 WebDirect 指南

湖北省政府采购中心

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

XXXXXXXX


河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

21 flash

《將進酒》

2C-ESP8266_Non_OS_SDK_API_Reference__CN.pages

19 互 联 网 络 是 一 种 功 能 最 强 大 的 营 销 工 具, 它 所 具 备 的 一 对 一 营 销 能 力, 正 是 符 合 定 制 营 销 与 直 复 营 销 的 未 来 趋 势 20 数 字 合 同 是 通 过 计 算 机 网 络 系 统 订 立 的, 以 数 据 电 文 的 方

untitled

production_testing_guide__CN.pages

! #!!

Microsoft Word - ACA doc

EPSON

Web

<4D F736F F D20A5F1A4FBA473A6DBA662C149AE76BB50B0A8AFAAB944A440AC78A67BA976C149BEC7ABE4B751AABAB56FAE692E646F63>


Microsoft Word SRS - 軟體需求規格.doc


谚语阐因

Qcon北京2018-《唯快不破——高效定位线上 Node.js 应用内存泄漏》-黄一君

以太坊钱包开发

I

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su

目 录 目 录 平 台 概 述 技 术 架 构 技 术 特 点 基 于 统 一 平 台 的 多 产 品 线 支 撑 先 进 性 安 全 性 开 放 性 高 性 能 和

Cisco WebEx Meetings Server 2.6 版常见问题解答

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

(Real-time) (Local Host) (Buffer) (Video Conference) (VoD) (NetRadio) ,000 [1]( ) ( ) 1400 (2001 ) 75 (2005 ) DFC Intelligence [2] 1



0a-esp8266ex_datasheet_cn

ESP32-LyraTD-SYNA_User_Guide__CN

WebST 3.0管理员手册

SIM7000 系列_SSL_应用文档_V1.00.doc

WebST 3.0管理员手册

Simulator By SunLingxi 2003

常 见 问 题 SLB 产 品 和 业 务 限 制 SLB 产 品 限 制 SLB 产 品 和 业 务 限 制 限 制 项 普 通 用 户 限 制 描 述 例 外 申 请 方 式 ( 例 外 上 限 ) 创 建 SLB 实 例 的 财 务 限 制 账 户 余 额 大 于 等 于 100 元 现 金

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

《C语言基础入门》课程教学大纲

untitled

秘密

E11701


Secoway SVN3000技术建议书V1

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

关于建立境内违法互联网站黑名单管理制度的通知

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

项目采购需求编写模板

安全公告

Python 和 人 工智能基 础课程 ( 第 二课 ) 张威, 雷雷萧萧

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

EPSON

概述

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

D-link用户手册.doc

ESP32-LyraTD-DSPG_User_Guide__cn

ext-web-auth-wlc.pdf

Hippy-VueConf

习题课

说 明

新美大酒店开放平台SDK(JAVA版)使用说明.pages

Transcription:

ESP8266 SSL 加密 使 用 手册 版本 2.0 版权 2017

本 文介绍基于 ESP8266_NONOS_SDK 的 SSL 加密使 用 方法 关于本 手册 章 标题 内容 第 1 章 概述 介绍 SSL 概况 第 2 章 环境搭建 如何搭建编译环境 第 3 章 ESP8266 作为 SSL Server 介绍 ESP8266 作为 SSL server 时的使 用 方法 第 4 章 ESP8266 作为 SSL Client 介绍 ESP8266 作为 SSL client 时的使 用 方法 第 5 章 软件接 口 介绍 SSL 软件接 口 发布说明 日期版本发布说明 2016.11 V1.0 首次发布 2018.01 V2.0 重 大更更新 文档变更更通知 用户可通过乐鑫官 网订阅技术 文档变更更的电 子邮件通知 证书下载 用户可通过乐鑫官 网下载产品证书

目录 1. 概述... 1 2. 编译环境与 工具... 1 3. ESP8266 作为 SSL Server... 3 3.1. 证书制作... 3 3.1.1. 无正式 CA 机构颁发的证书... 3 3.1.2. 有私钥和正式 CA 机构颁发的证书... 4 3.2. 证书使 用说明... 5 4. ESP8266 作为 SSL Client... 6 4.1. 证书制作... 6 4.1.1. 无正式 CA 机构的证书... 6 4.1.2. 仅有正式 CA 机构的证书 ca.crt... 7 4.1.3. 有私钥和正式 CA 机构颁发的证书... 8 4.2. 证书使 用说明... 9 5. 软件接 口... 11 5.1. espconn_secure_accept... 11 5.2. espconn_secure_delete... 12 5.3. espconn_secure_set_size... 12 5.4. espconn_secure_get_size... 12 5.5. espconn_secure_connect... 13 5.6. espconn_secure_send... 13 5.7. espconn_secure_disconnect... 14 5.8. espconn_secure_ca_enable... 14 5.9. espconn_secure_ca_disable... 15 5.10. espconn_secure_cert_req_enable... 15 5.11. espconn_secure_cert_req_disable... 15 5.12. espconn_secure_set_default_certificate... 16 5.13. espconn_secure_set_default_private_key... 16

1. 概述 1. 概述 SSL 指安全套接层 (Secure Socket Layer), 而 TLS 是 SSL 的继任者, 称为传输层安全 (Transport Layer Security) SSL/TLS 位于 TCP/IP 协议与上层应 用协议之间, 为数据通讯提供安全 支持 例例如,HTTP 协议是明 文传输, 加上 SSL 层之后, 就有了了雅称 HTTPS 通常, 使 用 SSL 指代 SSL/TLS 层 注意 : 建 立 SSL 加密通信, 认证并不不是必须的 但常 见的情况是,SSL client 会认证 SSL server 的身份, 这在本 文中称为 单向认证 同样,SSL server 也可以认证 SSL client 的证书, 双 方互相认证对 方的证书, 在本 文中称为 双向认证 CA(Certificate Authority) 是负责发放和管理理数字证书的权威机构, 并作为 SSL 证书认证中受信任的第三 方 说明 : 参考阅读资料料 http://blog.csdn.net/ustccw/article/details/76691248 名词解释 : - 单向认证 : 仅 SSL client 认证 SSL server 的证书 - 双向认证 :SSL client 与 SSL server 互相认证对 方的证书 本 文主要介绍基于 ESP8266_NONOS_SDK SSL 加密的证书认证使 用 方法, 将分别介绍 ESP8266 作为 SSL server 和 ESP8266 作为 SSL client 的使 用 方法 ESP8266 作为 SSL server 时, - 单向认证 :ESP8266 把 自 己的证书传给 SSL client, 由 SSL client 选择是否校验 ESP8266 的证书 - 双向认证 : 在单向认证的基础上,ESP8266 还要求 SSL client 提供它的证书, 由 ESP8266 认证 SSL client 是否可信 ESP8266 作为 SSL client 是更更常 用的情况, - 单向认证 :ESP8266 将接收 SSL server 传来的服务器器证书, 并选择是否校验服务器器的证书 - 双向认证 : 在单向认证的基础上,ESP8266 还需提供 自 己的证书给 SSL server, 让 SSL server 选择是否校验 ESP8266 Espressif 1/ 1 2018.01

2. 编译环境与 工具 2. 编译环境与 工具 下表介绍如何在 Windows 系统通过虚拟机搭建 Linux 编译环境 步骤 结果 1. 进 入 Windows 系统安装 lubuntu 虚拟机 详细可参考 ESP8266 SDK 入 门指南搭建编译环境 2. 挂载共享路路径 打开虚拟机桌 面的 LXTerminal 输 入指令 :./mount.sh 输 入密码 : espressif Espressif 1/

2. 编译环境与 工具 步骤 结果 将 ESP8266_NONOS_SDK 拷 贝到 lubuntu 虚拟机共享路路径下 ; 在虚拟机打开 ESP8266_NONOS_SDK/tools, 看到 makefile.sh 代表挂载成功 在 ESP8266_NONOS_SDK/tools 中提供了了 SSL 证书 生成 工具 : makefile.sh:ssl 证书格式转化和 生成脚本 - make_cacert.py 和 make_cert.py 为 SSL 证书格式转化和 生成使 用的相关 工具 rmfile.sh: 删除产 生过的所有 文件 Espressif 2/

3. ESP8266 作为 SSL Server 3. ESP8266 作为 SSL Server ESP8266 作为 SSL server 的应 用说明如下 : 必须 生成并包括 SSL 加密所需的头 文件 cert.h 和 private_key.h CA 认证默认关闭, 用户可调 用接 口 espconn_secure_ca_enable 使能, 并将 CA 证书转化为 esp_ca_cert.bin 文件烧录. 开发者可参考 ESP8266_NONOS_SDK/examples/IoT_Demo 中 #define SERVER_SSL_ENABLE 宏定义的代码, 实现 SSL server 功能 3.1. 证书制作 根据实际情况选择以下其中 一种 方式, 生成作为 SSL server 时基本加密所需的头 文件 cert.h 和 private_key.h, 以及 esp_ca_cert.bin( 仅 CA 认证时需要烧录 ) 3.1.1. 无正式 CA 机构颁发的证书如果您没有正式 CA 机构颁发的证书,ESP8266_NONOS_SDK/tools 中提供了了 makefile.sh 工具, 可以 生成 自签证书 ( 即 自 己作为 CA, 仅供测试使 用 ), 使 用 自签根证书给 自 己颁发服务器器证书 生成步骤如下 : 1. 修改 makefile.sh 中的 CN 字段, 具体将 192.168.111.100 改为 ESP8266 的实际 IP 地址 2. 执 行行命令 makefile.sh 即可 自动 生成所有相关加密 文件./makefile.sh 生成结果如下图 : Espressif 3/

3. ESP8266 作为 SSL Server 生成 SSL 加密所需的头 文件 cert.h 和 private_key.h 位于 include 目录中 生成 CA 认证所需的 esp_ca_cert.bin 位于 bin 目录下 说明 : ca 目录中为 自签的证书 用户可根据加密需要, 将 makefile.sh 中默认的 1024 位加密改为 512 位或其他 3.1.2. 有私钥和正式 CA 机构颁发的证书 如果您有私钥 server.key CA 机构的正式证书 ca.crt, 及其颁发的 server.crt, 请将这三 个 文件拷 贝 至 ESP8266_NONOS_SDK/tools 目录下 如下图所示 : 注意 : 证书名称如果与示例例不不符, 则必须对应重命名为 server.key, ca.crt, server.crt 请确保 ca.crt 和 server.crt 为 PEM 格式 直接执 行行命令 makefile.sh 即可 自动 生成所有相关加密 文件./makefile.sh 生成结果如下图 : 生成 SSL 加密所需的头 文件 cert.h 和 private_key.h 位于 include 目录中 Espressif 4/

3. ESP8266 作为 SSL Server 生成 CA 认证所需的 esp_ca_cert.bin 位于 bin 目录下 3.2. 证书使 用说明 开发者请参考 IOT_Demo 中 #define SERVER_SSL_ENABLE 宏定义的代码来实现 SSL 相 关功能 注意事项如下 : 开发者必须调 用 espconn_secure_set_default_certificate 传 入证书 cert.h 开发者必须调 用 espconn_secure_set_default_private_key 传 入密钥 private_key.h 如果使 用 CA 认证, 则还需烧录 CA 证书, 具体如下 : - 调 用 espconn_secure_ca_enable 并指定证书位置, 详细 见第 5 章软件接 口 - 烧录 CA 证书 esp_ca_cert.bin 到 espconn_secure_ca_enable 指定的位置 SSL 功能需要占 用 大量量内存, 请开发者在上层应 用程序确保内存 足够 - 在将 SSL 缓存设置为 8 KB (espconn_secure_set_size) 的情况下,SSL 功能 至少需要 22 KB 的空间 - 由于服务器器的证书 大 小不不同, 所需空间可能更更 大 - 如果内存不不 足, 将导致 SSL 握 手失败 如果使能 SSL 双向认证功能,espconn_secure_set_size 最 大仅 支持设置为 3,072 字节, 在内存不不 足的情况下,SSL 缓存的空间必须设置到更更 小 Espressif 5/

4. ESP8266 作为 SSL Client 4. ESP8266 作为 SSL Client ESP8266 作为 SSL client 时, 用户可按实际使 用情景, 生成 SSL 加密所需的证书 文件 单向认证 ( 仅作为 client 的 ESP8266 校验服务器器合法性 ): - 调 用接 口 espconn_secure_ca_enable 使能 CA 认证 ( 默认状态下,CA 认证禁 用 ) - 生成 CA 证书 文件 esp_ca_cert.bin, 并将其烧录 至 espconn_secure_ca_enable 指定位置 双向认证 (ESP8266 与服务器器互相校验对 方证书的合法性 ): - 需 生成 CA 证书 文件 esp_ca_cert.bin 以及 SSL client 证书私钥 文件 esp_cert_private_key.bin 用户可以参考 esp_mqtt_demo 以及其中 #define MQTT_SSL_ENABLE 宏定义的代码, 实现 SSL client 功能 4.1. 证书制作 请根据实际情况选择以下其中 一种 方式, 生成 SSL 加密所需的证书 4.1.1. 无正式 CA 机构的证书如果您没有任何正式的 CA 机构颁发的证书,ESP8266_NONOS_SDK/tools 中提供了了 makefile.sh 工具, 用于 生成 自签 CA(ca.crt + ca.key), 并使 用 自签 CA 给 自 己颁发证书, 用于测试 生成步骤如下 : 1. 修改 makefile.sh 中的 CN 字段, 由 192.168.111.100 改为实际主机的 IP 地址 2. 执 行行命令 makefile.sh 即可 自动 生成所有相关加密 文件 Espressif 6/

4. ESP8266 作为 SSL Client./makefile.sh 生成结果如下图 : 生成的 SSL 加密所需的 CA 证书 文件 esp_ca_cert.bin 以及 client 证书私钥 文件 esp_cert_private_key.bin 位于 bin 目录下 说明 : ca 目录中为 自签的证书 用户可根据加密需要, 将 makefile.sh 中默认的 1024 位加密改为 512 位或其他 4.1.2. 仅有正式 CA 机构的证书 ca.crt 如果您仅有正式的 CA 机构的证书 ca.crt, 那么将 ca.crt 拷 贝 至 ESP8266_NONOS_SDK/ tools 目录下, 如图 : 注意 : 证书名称如果与示例例不不符, 则必须对应重命名为 ca.crt 请确保 ca.crt 为 PEM 格式 直接执 行行命令 makefile.sh 即可 自动 生成所有相关加密 文件./makefile.sh Espressif 7/

4. ESP8266 作为 SSL Client 生成结果如下图 : 生成单向认证所需的 CA 证书 文件 esp_ca_cert.bin 位于 bin 目录下 4.1.3. 有私钥和正式 CA 机构颁发的证书如果您有私钥 client.key, 并且有正式的 CA 机构的证书 ca.crt 及其颁发的 client.crt, 那么将 client.key,ca.crt 和 client.crt 拷 贝 至 ESP8266_NONOS_SDK/tools 目录下, 如图 : 注意 : 证书名称如果与示例例不不符, 则必须对应重命名为 client.key, ca.crt, client.crt 请确保 ca.crt 和 client.crt 为 PEM 格式 直接执 行行命令 makefile.sh 即可 自动 生成所有相关加密 文件./makefile.sh 生成结果如下图 : Espressif 8/

4. ESP8266 作为 SSL Client 4.2. 证书使 用说明 生成的 SSL 加密所需的 CA 证书 文件 esp_ca_cert.bin 以及 client 证书私钥 文件 esp_cert_private_key.bin 位于 bin 目录下 开发者请参考 esp_mqtt_proj 以及其中 #define MQTT_SSL_ENABLE 宏定义的代码来实现 SSL 相关功能 注意事项如下 : 如需使能单向认证, 即仅 ESP8266 校验服务器器, 则设置如下 : - 必须调 用接 口 espconn_secure_ca_enable 使能 CA 认证 - 必须烧录 esp_ca_cert.bin, 烧录的位置由 espconn_secure_ca_enable 的第 二个参数决定 如需使能双向认证, 即 ESP8266 与服务器器互相校验对 方的证书, 则在上述单向认证的基础上, 增加如下设置 : - 除了了接 口 espconn_secure_ca_enable, 接 口 espconn_secure_cert_req_enable 也应调 用使能 CA 认证 - 必须烧录 esp_ca_cert.bin, 烧录的位置由 espconn_secure_ca_enable 的第 二个参数决定 - 烧录 esp_cert_private_key.bin, 烧录位置由 espconn_secure_cert_req_enable 第 二个参数决定 SSL 功能需要占 用 大量量内存, 请开发者在上层应 用程序确保内存 足够 - 在将 SSL 缓存设置为 8 KB (espconn_secure_set_size) 的情况下,SSL 功能 至少需要 22 KB 的空间 Espressif 9/

4. ESP8266 作为 SSL Client - 由于服务器器的证书 大 小不不同, 所需空间可能更更 大 - 如果内存不不 足, 将导致 SSL handshake 失败 如果使能 SSL 双向认证功能,espconn_secure_set_size 最 大仅 支持设置为 3072 字节, 在内存不不 足的情况下,SSL 缓存的空间必须设置到更更 小 如果内存不不 足, 将导致 SSL handshake 失败 Espressif 10/

5. 软件接 口 5. 软件接 口 SSL 软件接 口与普通 TCP 软件接 口, 在 SDK 底层是两套不不同的处理理流程, 因此, 请不不要混 用两种软件接 口 SSL 连接时, 仅 支持使 用 : espconn_secure_xxx 系列列接 口 ; espconn_regist_xxxcb 系列列注册回调的接 口, 除了了 espconn_regist_write_finish; espconn_port 获得 一个空闲端 口 本 文仅介绍 espconn_secure_xxx 系列列接 口, 更更多的软件接 口介绍, 请参考 ESP8266 Non-OS SDK API 参考 5.1. espconn_secure_accept 功能 函数定义 参数 创建 SSL TCP server, 侦听 SSL 握 手 sint8 espconn_secure_accept(struct espconn *espconn) struct espconn *espconn: 对应 网络连接的结构体 0: 成功 返回 其它 : 失败 - ESPCONN_MEM: 空间不不 足 - ESPCONN_ISCONN: 连接已经建 立 - ESPCONN_ARG: 非法参数, 未找到参数 espconn 对应的 TCP 连接 目前仅 支持建 立 一个 SSL server, 本接 口只能调 用 一次, 并且仅 支持连 入 一个 SSL client 如果 SSL 加密 一包数据 大于 espconn_secure_set_size 设置的缓存空间 ( 默认为 2 KB),ESP8266 无法处理理,SSL 连接断开, 调 用 espconn_reconnect_callback 注意 SSL 相关接 口与普通 TCP 接 口底层处理理不不 一致, 请不不要混 用 SSL 连接时, 仅 支持使 用 espconn_secure_xxx 系列列接 口 espconn_regist_xxxcb 系列列接 口 ( 注册回调函数 ), 以及 espconn_port 接 口 ( 获得 一个空闲端 口 ) 如需创建 SSL server, 必须先调 用 espconn_secure_set_default_certificate 和 espconn_secure_set_default_private_key 传 入证书和密钥 Espressif 11/

5. 软件接 口 5.2. espconn_secure_delete 功能 函数定义 参数 删除 ESP8266 作为 SSL server 的连接 sint8 espconn_secure_delete(struct espconn *espconn) struct espconn *espconn: 对应 网络连接的结构体 0: 成功 返回 其它 : 失败 - ESPCONN_ARG: 非法参数, 未找到参数 espconn 对应的 TCP 连接 - ESPCONN_INPROGRESS: 参数 espconn 对应的 SSL 连接仍未断开, 请先调 用 espconn_secure_disconnect 断开连接, 再进 行行删除 5.3. espconn_secure_set_size 功能函数定义参数返回注意 设置加密 (SSL) 数据缓存空间的 大 小 bool espconn_secure_set_size (uint8 level, uint16 size) uint8 level: 设置 ESP8266 SSL server/client - 0x01:SSL client - 0x02:SSL server - 0x03:SSL client 和 SSL server uint16 size: 加密数据缓存的空间 大 小, 取值范围 :1 ~ 8,192 字节, 默认值为 2,048 字节 true: 成功 false: 失败默认缓存 大 小为 2KB; 如需更更改, 请在加密 (SSL) 连接建 立前调 用 : 在 espconn_secure_accept(esp8266 作为 TCP SSL server) 之前调 用 ; 或者 espconn_secure_connect(esp8266 作为 TCP SSL client) 之前调 用 5.4. espconn_secure_get_size 功能 函数定义 查询加密 (SSL) 数据缓存空间的 大 小 sint16 espconn_secure_get_size (uint8 level) uint8 level: 设置该缓存空间在 ESP8266 SSL 为 server client 或同时有效 参数 返回 0x01:SSL client 0x02:SSL server 0x03:SSL client 和 SSL server 加密 (SSL) 数据缓存空间的 大 小 Espressif 12/

5. 软件接 口 5.5. espconn_secure_connect 功能 函数定义 参数 加密 (SSL) 连接到 TCP SSL server(esp8266 作为 TCP SSL client) sint8 espconn_secure_connect (struct espconn *espconn) struct espconn *espconn: 对应 网络连接的结构体 0: 成功 返回 注意 其它 : 失败 - ESPCONN_MEM: 空间不不 足 - ESPCONN_ISCONN: 连接已经建 立 - ESPCONN_ARG: 非法参数, 未找到参数 espconn 对应的 TCP 连接 如果 espconn_secure_connect 失败, 返回 非零值, 连接未建 立, 不不会进 行行任何 espconn callback 目前 ESP8266 作为 SSL client 仅 支持 一个连接, 本接 口只能调 用 一次, 或者调 用 espconn_secure_disconnect 断开前 一次连接, 才可以再次调 用本接 口建 立 SSL 连接 如果 SSL 加密 一包数据 大于 espconn_secure_set_size 设置的缓存空间,ESP8266 无法处理理,SSL 连接断开, 进 入 espconn_reconnect_callback SSL 相关接 口与普通 TCP 接 口底层处理理不不 一致, 请不不要混 用 SSL 连接时, 仅 支持使 用 espconn_secure_xxx 系列列接 口 espconn_regist_xxxcb 系列列接 口 ( 注册回调函数 ), 以及 espconn_port 接 口 ( 获得 一个空闲端 口 ) 5.6. espconn_secure_send 功能函数定义参数返回注意 发送加密数据 (SSL) sint8 espconn_secure_send ( struct espconn *espconn, uint8 *psent, uint16 length ) struct espconn *espconn: 对应 网络连接的结构体 uint8 *psent: 发送的数据 uint16 length: 发送的数据 长度 0: 成功 ESPCONN_ARG: 未找到参数 espconn 对应的 TCP 连接 请在上 一包数据发送完成, 进 入 espconn_sent_callback 后, 再发下 一包数据 每 一包数据明 文的上限值为 1,024 字节, 加密后的报 文上限值是 1,460 字节 Espressif 13/

5. 软件接 口 5.7. espconn_secure_disconnect 功能函数定义参数返回注意 断开加密 TCP 连接 (SSL) sint8 espconn_secure_disconnect(struct espconn *espconn) struct espconn *espconn: 对应 网络连接的结构体 0: 成功 ESPCONN_ARG: 未找到参数 espconn 对应的 TCP 连接请勿在 espconn 的任何 callback 中调 用本接 口断开连接 如有需要, 请使 用 system_os_task 和 system_os_post, 触发任务 espconn_secure_disconnect, 断开连接 5.8. espconn_secure_ca_enable 功能 函数定义 开启 SSL CA 认证功能 bool espconn_secure_ca_enable (uint8 level, uint32 flash_sector) uint8 level: 设置 ESP8266 SSL server/client 参数 返回 注意 - 0x01:SSL client - 0x02:SSL server - 0x03:SSL client 和 SSL server uint32 flash_sector: 设置 CA 证书 esp_ca_cert.bin 烧录到 flash 的位置 例例如, 参数传 入 0x7B, 则对应烧录到 flash 的 0x7B000 true: 成功 false: 失败 CA 认证功能, 默认关闭 如需调 用本接 口, 请在加密 (SSL) 连接建 立前调 用 : - 在 espconn_secure_accept(esp8266 作为 TCP SSL server) 之前调 用 ; - 或者 espconn_secure_connect(esp8266 作为 TCP SSL client) 之前调 用 Espressif 14/

5. 软件接 口 5.9. espconn_secure_ca_disable 功能 函数定义 关闭 SSL CA 认证功能 bool espconn_secure_ca_disable (uint8 level) uint8 level: 设置该缓存空间在 ESP8266 SSL 为 server client 或同时有效 参数 返回 注意 - 0x01:SSL client - 0x02:SSL server - 0x03:SSL client 和 SSL server true: 成功 false: 失败 CA 认证功能, 默认关闭 如需调 用本接 口, 请在加密 (SSL) 连接建 立前调 用 : - 在 espconn_secure_accept(esp8266 作为 TCP SSL server) 之前调 用 ; - 在 espconn_secure_connect(esp8266 作为 TCP SSL client) 之前调 用 5.10. espconn_secure_cert_req_enable 功能 函数定义 使能 ESP8266 作为 SSL client 时的证书认证功能 bool espconn_secure_cert_req_enable (uint8 level, uint32 flash_sector) uint8 level:esp8266 作为 SSL client, 仅 支持设置为 0x01 参数 返回 注意 uint32 flash_sector: 设置密钥 esp_cert_private_key.bin 烧录到 Flash 的位置, 例例如, 参数传 入 0x7A, 则对应烧录到 Flash 0x7A000 请注意, 不不要覆盖到代码或系统参数区域 true: 成功 false: 失败 证书认证功能, 默认关闭 如果服务器器端不不要求认证证书, 则 无需调 用本接 口 如需调 用本接 口, 请在 espconn_secure_connect 之前调 用 5.11. espconn_secure_cert_req_disable 功能函数定义参数返回注意 关闭 ESP8266 作为 SSL client 时的证书认证功能 bool espconn_secure_ca_disable (uint8 level) uint8 level: 仅 支持设置为 0x01 ESP8266 作为 SSL client true: 成功 false: 失败证书认证功能, 默认关闭 Espressif 15/

5. 软件接 口 5.12. espconn_secure_set_default_certificate 功能 设置 ESP8266 作为 SSL server 时的证书 函数定义参数返回注意 bool espconn_secure_set_default_certificate (const uint8_t* certificate, uint16_t length) const uint8_t* certificate: 证书指针 uint16_t length: 证书 长度 true: 成功 false: 失败 ESP8266_NONOS_SDK/examples/IoT_Demo 中提供使 用示例例 本接 口必须在 espconn_secure_accept 之前调 用, 传 入证书信息 5.13. espconn_secure_set_default_private_key 功能 设置 ESP8266 作为 SSL server 时的密钥 函数定义参数返回注意 bool espconn_secure_set_default_private_key (const uint8_t* key, uint16_t length) const uint8_t* key: 密钥指针 uint16_t length: 密钥 长度 true: 成功 false: 失败 ESP8266_NONOS_SDK/examples/IoT_Demo 中提供使 用示例例 本接 口必须在 espconn_secure_accept 之前调 用, 传 入密钥信息 Espressif 16/

免责申明和版权公告本 文中的信息, 包括供参考的 URL 地址, 如有变更更, 恕不不另 行行通知 文档 按现状 提供, 不不负任何担保责任, 包括对适销性 适 用于特定 用途或 非侵权性的任何担保, 和任何提案 规格或样品在他处提到的任何担保 本 文档不不负任何责任, 包括使 用本 文档内信息产 生的侵犯任何专利利权 行行为的责任 本 文档在此未以禁 止反 言或其他 方式授予任何知识产权使 用许可, 不不管是明示许可还是暗示许可 Wi-Fi 联盟成员标志归 Wi-Fi 联盟所有 蓝 牙标志是 Bluetooth SIG 的注册商标 乐鑫 IoT 团队 www.espressif.com 文中提到的所有商标名称 商标和注册商标均属其各 自所有者的财产, 特此声 明 版权归 2017 乐鑫所有 保留留所有权利利