乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)
- 本系列博客學習由非官方人員 半顆心臟 潛心所力所寫,僅僅做個人技術交流分享,不做任何商業用途。如有不對之處,請留言,本人及時更改。
系列一:ESP32系列模組基礎學習系列筆記
1、 爬坑學習新旅程,虛擬機搭建esp32開發環境,打印 “Hellow World”。
2、 巧用eclipes編輯器,官方教程在在Windows下搭建esp32開發環境,打印 “Hellow World”。
3、 認識基本esp32的GPIO接口,開始點亮您的第一盞 LED和中斷回調實現按鍵功能 。
4、體會esp32的強大的定時器功能, 實現定時2s閃爍一盞LED燈。
5、接觸實踐esp32的pwm寬度脈沖功能, 實現呼吸效果閃爍一盞LED燈。
6、smartConfig和微信airKiss在esp32的實現,一鍵配網輕松快捷連接路由器。
7、利用GPIO中斷做一個按鍵的短按和長按的回調事件,再也無須擔心觸發源。
8、esp32上實現本地 UDP 客戶端和服務端角色,在局域網內實現通訊。
9、esp32上實現本地 TCP 客戶端和服務端角色,可斷線重連原路返回數據。
10、樂鑫esp32 SDK編程利用rmt驅動ws2812七彩燈,實現彩虹漸變效果。
11、入門 樂鑫esp-adf 音頻框架開發,esp32造一個藍牙耳機,實現切換歌曲,獲取歌曲信息等功能。
12、開源一個微信公眾號airkiss配網esp32以及局域網發現功能的工程,分享一個airkiss配網小工具。
13、esp32 內置 dns 服務器,無需外網訪問域名返回指定網頁。
14、esp32 sdk編程實現門戶強制認證,連接esp32熱點之后,自動強制彈出指定的登錄界面。
15、認識本地離線語音喚醒識別框架 esp-skainet ,實現較低成本的硬件語音本地識別控制。
16、學習本地語音喚醒離線識別框架 esp-skainet ,如何修改喚醒詞? 如何自定義命令詞?如何做意圖動作?
17、全網首發,樂鑫esp32 sdk直連京東微聯·小京魚 · IoT開放平臺,實現叮咚音響語音智能控制。
18、入門京東微聯·小京魚的控制面板H5開發,讀懂vue語法,做自己的控制頁面。
19、重磅開源,如何在微信小程序上ble藍牙配網esp32,blufi的那些事!
20、一篇好文,開發過程中編譯esp32固件太大,無法正常啟動?教你如何自定義分區表partitions.csv。
21、 esp32藍牙配網blufi的高度封裝,集成簡單、使用簡單、容易上手,提高開發效率!
22、討論下程序員 “青春飯” 那些事,分享在esp32實現多種加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等!
23、安信可 esp32-a1s 音頻開發板移植最新 esp-adf 音頻框架,小試牛刀如何實現在線文字轉語音播放。
25、分享在 esp32 SDK實現冷暖光色溫平滑調節的封裝,輕松集成到您的項目去。
26、分享下如何在window下使用CMake編譯,編譯速度提高傳統 make 編譯一個檔次,支持 ESP32 和 ESP32-C3。
27、windows10平臺下自帶的Linux安裝 ESP8266/ESP32 環境,再無需額外安裝虛擬機了。
28、熟悉自定義分區表 partition,拉取阿里云對象存儲的單片機/圖片等較大文件保存在特定的存儲位置,并讀取出來做完整性校驗。
29、安信可Wi-Fi模組對接華為云物聯網平臺的指南。
30、對接華為IoT物聯網平臺適配踩坑,使用ESP-IDF 編程使用HTTPS請求固件跳過證書校驗,實現OTA遠程升級文件。
系列二:ESP32-Camera 攝像頭開發板系列筆記
1、安信可 ESP32-Cam 攝像頭開發板二次開發 C SDK編程,實現MQTT遠程拍照傳輸到私有服務器。
2、安信可 ESP32-Cam 攝像頭開發板二次開發 C SDK編程,實現本地視頻流監控。
3、安信可 ESP32-Cam 攝像頭開發板二次開發 C SDK編程,拍照圖片通過有線串口傳到上位機PC端。
系列三:ESP32-C3 模組系列筆記
1、【藍牙Mesh筆記 ①】ESP32-C3 模組上實現天貓精靈藍牙 BLE Mesh AliGenie 接入,無需WiFi 連接也可以實現天貓精靈語音控制。
系列四:ESP32-S3 模組系列筆記
1、安信可 ESP32-S3 模組上驅動攝像頭 OV2640,實現遠程拍照并 HTTP 傳輸到阿里云對象存儲OSS,并顯示在微信小程序上。。
系列四:ESP32模組系列筆記 LVGL LittlevGL
1、【LittlevGL ESP32 學習筆記 ①】移植最新的 LVGL 到安信可ESP32\C3模組,顯示一個二維碼。
文章目錄
- 一、前言
- 二、選擇的框架?
- 三、如何使用
- 如何使用此Demo
- API 說明
- 五、常見問題 FAQ
- 1. 如何替換證書?
- 2. 如何支持HTTPS連接,但不做證書校驗?
- 另外,不要把我的博客作為學習標準,我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!
一、前言
最近有需求要對接華為云物聯網平臺,所以準備做成一套SDK給大家使用,在遇到這么一個場景,在開發最后階段的OTA升級時候,發現需要跳過SSL校驗,我本著很納悶的心態在思考:華為也不缺人力物力啊,一個域名+證書都無法確定下來?還是用的人太少了,所以沒怎么注意這塊的體驗?
下面是對話截圖,記錄與2022.3.1,截至今天 2022.4.3 發文,仍然未解決此問題。
不可厚非的是,在一些開發場景中,由于域名證書頻繁更高,或者證書過期,需要更換證書,但是由于還未來得及更新證書,導致本地校驗證書失敗,所以,我們須在單向認證時候,不做證書校驗,那么我們應該如何做呢?
只能跳過證書校驗唄!
二、選擇的框架?
既然需要跳過校驗SSL,那么我選擇 mbedtls 加密庫,因為這個庫是開源的,資料也很多,自己也熟悉。OTA升級的話,干脆選擇例程自帶的吧。
mbedtls 在發起校驗請求時候,我們只要把這個數值設置為 MBEDTLS_SSL_VERIFY_NONE 即可,表示不校驗。
#define MBEDTLS_SSL_VERIFY_NONE 0 // 不校驗SSL #define MBEDTLS_SSL_VERIFY_OPTIONAL 1 // 校驗SSL,在 mbedtls_ssl_get_verify_result 提示結果讓用戶自行選擇是否繼續請求網址 #define MBEDTLS_SSL_VERIFY_REQUIRED 2 // 必須校驗SSLmbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);三、如何使用
為了學習筆記,以及后續可能會繼續用到這樣的場景,于是乎,我就封裝了一下,也分享給大家使用,源碼獲取見最后。依賴的esp-idf 版本 v4.3 ,我使用的 commit 如下:
commit 8ffddf53bc9cb0c36d1949476e244b202f3b42d2 (origin/release/v4.3)如何使用此Demo
- 先配置路由器信息。
- 修改ota文件的URL,并且修改是否需要跳過證書。
- 支持證書校驗或證書不校驗。
API 說明
見注釋:
typedef enum{OTA_CERT_SSL_VERIFY_NONE = 0, // 不校驗證書,直接通過OTA_CERT_SSL_VERIFY_OPTIONAL, // 校驗證書并給出結果,由用戶決定是否繼續請求OTA_CERT_SSL_VERIFY_REQUIRED, // 校驗證書并給出結果,必須證書通過才繼續請求} ota_ssl_cert_verify_set_t;/*** @brief otas_http_client_config configuration*/typedef struct{const char *url;ota_ssl_cert_verify_set_t cert_set;bool skip_ssl_cert_set; //是否跳過證書認證,僅當 ota_ssl_cert_verify_set_t 為 OTA_CERT_SSL_VERIFY_OPTIONAL有效int url_length;} otas_http_client_config;esp_err_t start_https_ota(const otas_http_client_config *config);五、常見問題 FAQ
1. 如何替換證書?
請把域名證書替換 https_ota\cert\server_root_cert.pem 里面內容即可。
2. 如何支持HTTPS連接,但不做證書校驗?
參數開始時候,請把 cert_set 設置為 OTA_CERT_SSL_VERIFY_OPTIONAL ,把 skip_ssl_cert_set設置為 false 。
.cert_set = OTA_CERT_SSL_VERIFY_OPTIONAL,.skip_ssl_cert_set = false,本文章的源碼免費獲取:https://github.com/xuhongv/StudyInEsp32/tree/master/27_ota_https_skip_cert_option
ESP32/C3/S3對接華為云IoT物聯網平臺 esp-idf 源碼:https://blog.csdn.net/xh870189248/article/details/123777199
另外,不要把我的博客作為學習標準,我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!
- 玩轉無線物聯網帶你飛、加千人群討論,群里眾多國內ESP開發者,找到你一份歸屬,免費白嫖。
- QQ討論一群,點擊加群:434878850
- QQ討論二群,點擊加群:623325168
- 個人微信公眾號:徐宏blog , 不定時推送干貨文章,不推送任何廣告。
- 個人郵箱:xuhongv@yeah.net 24小時在線,有發必回復!
- esp8266源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
- esp32源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32
- 關注下面微信公眾號二維碼,干貨多多,第一時間推送!
總結
以上是生活随笔為你收集整理的乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xvidcore.dll not fou
- 下一篇: 软件安装包制作工具installshie