日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)

發(fā)布時間:2023/12/14 编程问答 74 豆豆

  • 本系列博客學(xué)習(xí)由非官方人員 半顆心臟 潛心所力所寫,僅僅做個人技術(shù)交流分享,不做任何商業(yè)用途。如有不對之處,請留言,本人及時更改。

系列一:ESP32系列模組基礎(chǔ)學(xué)習(xí)系列筆記

1、 爬坑學(xué)習(xí)新旅程,虛擬機(jī)搭建esp32開發(fā)環(huán)境,打印 “Hellow World”。
2、 巧用eclipes編輯器,官方教程在在Windows下搭建esp32開發(fā)環(huán)境,打印 “Hellow World”。
3、 認(rèn)識基本esp32的GPIO接口,開始點亮您的第一盞 LED和中斷回調(diào)實現(xiàn)按鍵功能 。
4、體會esp32的強(qiáng)大的定時器功能, 實現(xiàn)定時2s閃爍一盞LED燈。
5、接觸實踐esp32的pwm寬度脈沖功能, 實現(xiàn)呼吸效果閃爍一盞LED燈。
6、smartConfig和微信airKiss在esp32的實現(xiàn),一鍵配網(wǎng)輕松快捷連接路由器。
7、利用GPIO中斷做一個按鍵的短按和長按的回調(diào)事件,再也無須擔(dān)心觸發(fā)源。
8、esp32上實現(xiàn)本地 UDP 客戶端和服務(wù)端角色,在局域網(wǎng)內(nèi)實現(xiàn)通訊。
9、esp32上實現(xiàn)本地 TCP 客戶端和服務(wù)端角色,可斷線重連原路返回數(shù)據(jù)。
10、樂鑫esp32 SDK編程利用rmt驅(qū)動ws2812七彩燈,實現(xiàn)彩虹漸變效果。
11、入門 樂鑫esp-adf 音頻框架開發(fā),esp32造一個藍(lán)牙耳機(jī),實現(xiàn)切換歌曲,獲取歌曲信息等功能。
12、開源一個微信公眾號airkiss配網(wǎng)esp32以及局域網(wǎng)發(fā)現(xiàn)功能的工程,分享一個airkiss配網(wǎng)小工具。
13、esp32 內(nèi)置 dns 服務(wù)器,無需外網(wǎng)訪問域名返回指定網(wǎng)頁。
14、esp32 sdk編程實現(xiàn)門戶強(qiáng)制認(rèn)證,連接esp32熱點之后,自動強(qiáng)制彈出指定的登錄界面。
15、認(rèn)識本地離線語音喚醒識別框架 esp-skainet ,實現(xiàn)較低成本的硬件語音本地識別控制。
16、學(xué)習(xí)本地語音喚醒離線識別框架 esp-skainet ,如何修改喚醒詞? 如何自定義命令詞?如何做意圖動作?
17、全網(wǎng)首發(fā),樂鑫esp32 sdk直連京東微聯(lián)·小京魚 · IoT開放平臺,實現(xiàn)叮咚音響語音智能控制。
18、入門京東微聯(lián)·小京魚的控制面板H5開發(fā),讀懂vue語法,做自己的控制頁面。
19、重磅開源,如何在微信小程序上ble藍(lán)牙配網(wǎng)esp32,blufi的那些事!
20、一篇好文,開發(fā)過程中編譯esp32固件太大,無法正常啟動?教你如何自定義分區(qū)表partitions.csv。
21、 esp32藍(lán)牙配網(wǎng)blufi的高度封裝,集成簡單、使用簡單、容易上手,提高開發(fā)效率!
22、討論下程序員 “青春飯” 那些事,分享在esp32實現(xiàn)多種加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等!
23、安信可 esp32-a1s 音頻開發(fā)板移植最新 esp-adf 音頻框架,小試牛刀如何實現(xiàn)在線文字轉(zhuǎn)語音播放。
25、分享在 esp32 SDK實現(xiàn)冷暖光色溫平滑調(diào)節(jié)的封裝,輕松集成到您的項目去。
26、分享下如何在window下使用CMake編譯,編譯速度提高傳統(tǒng) make 編譯一個檔次,支持 ESP32 和 ESP32-C3。
27、windows10平臺下自帶的Linux安裝 ESP8266/ESP32 環(huán)境,再無需額外安裝虛擬機(jī)了。
28、熟悉自定義分區(qū)表 partition,拉取阿里云對象存儲的單片機(jī)/圖片等較大文件保存在特定的存儲位置,并讀取出來做完整性校驗。
29、安信可Wi-Fi模組對接華為云物聯(lián)網(wǎng)平臺的指南。
30、對接華為IoT物聯(lián)網(wǎng)平臺適配踩坑,使用ESP-IDF 編程使用HTTPS請求固件跳過證書校驗,實現(xiàn)OTA遠(yuǎn)程升級文件。

系列二:ESP32-Camera 攝像頭開發(fā)板系列筆記

1、安信可 ESP32-Cam 攝像頭開發(fā)板二次開發(fā) C SDK編程,實現(xiàn)MQTT遠(yuǎn)程拍照傳輸?shù)剿接蟹?wù)器。
2、安信可 ESP32-Cam 攝像頭開發(fā)板二次開發(fā) C SDK編程,實現(xiàn)本地視頻流監(jiān)控。
3、安信可 ESP32-Cam 攝像頭開發(fā)板二次開發(fā) C SDK編程,拍照圖片通過有線串口傳到上位機(jī)PC端。

系列三:ESP32-C3 模組系列筆記

1、【藍(lán)牙Mesh筆記 ①】ESP32-C3 模組上實現(xiàn)天貓精靈藍(lán)牙 BLE Mesh AliGenie 接入,無需WiFi 連接也可以實現(xiàn)天貓精靈語音控制。

系列四:ESP32-S3 模組系列筆記

1、安信可 ESP32-S3 模組上驅(qū)動攝像頭 OV2640,實現(xiàn)遠(yuǎn)程拍照并 HTTP 傳輸?shù)桨⒗镌茖ο蟠鎯SS,并顯示在微信小程序上。。

系列四:ESP32模組系列筆記 LVGL LittlevGL

1、【LittlevGL ESP32 學(xué)習(xí)筆記 ①】移植最新的 LVGL 到安信可ESP32\C3模組,顯示一個二維碼。


文章目錄

  • 一、前言
  • 二、選擇的框架?
  • 三、如何使用
    • 如何使用此Demo
    • API 說明
  • 五、常見問題 FAQ
      • 1. 如何替換證書?
      • 2. 如何支持HTTPS連接,但不做證書校驗?
    • 另外,不要把我的博客作為學(xué)習(xí)標(biāo)準(zhǔn),我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!

一、前言

最近有需求要對接華為云物聯(lián)網(wǎng)平臺,所以準(zhǔn)備做成一套SDK給大家使用,在遇到這么一個場景,在開發(fā)最后階段的OTA升級時候,發(fā)現(xiàn)需要跳過SSL校驗,我本著很納悶的心態(tài)在思考:華為也不缺人力物力啊,一個域名+證書都無法確定下來?還是用的人太少了,所以沒怎么注意這塊的體驗?

下面是對話截圖,記錄與2022.3.1,截至今天 2022.4.3 發(fā)文,仍然未解決此問題。


不可厚非的是,在一些開發(fā)場景中,由于域名證書頻繁更高,或者證書過期,需要更換證書,但是由于還未來得及更新證書,導(dǎo)致本地校驗證書失敗,所以,我們須在單向認(rèn)證時候,不做證書校驗,那么我們應(yīng)該如何做呢?

只能跳過證書校驗唄!


二、選擇的框架?

既然需要跳過校驗SSL,那么我選擇 mbedtls 加密庫,因為這個庫是開源的,資料也很多,自己也熟悉。OTA升級的話,干脆選擇例程自帶的吧。

mbedtls 在發(fā)起校驗請求時候,我們只要把這個數(shù)值設(shè)置為 MBEDTLS_SSL_VERIFY_NONE 即可,表示不校驗。

#define MBEDTLS_SSL_VERIFY_NONE 0 // 不校驗SSL #define MBEDTLS_SSL_VERIFY_OPTIONAL 1 // 校驗SSL,在 mbedtls_ssl_get_verify_result 提示結(jié)果讓用戶自行選擇是否繼續(xù)請求網(wǎng)址 #define MBEDTLS_SSL_VERIFY_REQUIRED 2 // 必須校驗SSLmbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);

三、如何使用

為了學(xué)習(xí)筆記,以及后續(xù)可能會繼續(xù)用到這樣的場景,于是乎,我就封裝了一下,也分享給大家使用,源碼獲取見最后。依賴的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, // 校驗證書并給出結(jié)果,由用戶決定是否繼續(xù)請求OTA_CERT_SSL_VERIFY_REQUIRED, // 校驗證書并給出結(jié)果,必須證書通過才繼續(xù)請求} 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; //是否跳過證書認(rèn)證,僅當(dāng) 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 里面內(nèi)容即可。

2. 如何支持HTTPS連接,但不做證書校驗?

參數(shù)開始時候,請把 cert_set 設(shè)置為 OTA_CERT_SSL_VERIFY_OPTIONAL ,把 skip_ssl_cert_set設(shè)置為 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物聯(lián)網(wǎng)平臺 esp-idf 源碼:https://blog.csdn.net/xh870189248/article/details/123777199


另外,不要把我的博客作為學(xué)習(xí)標(biāo)準(zhǔn),我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!

  • 玩轉(zhuǎn)無線物聯(lián)網(wǎng)帶你飛、加千人群討論,群里眾多國內(nèi)ESP開發(fā)者,找到你一份歸屬,免費白嫖。
  • QQ討論一群,點擊加群:434878850
  • QQ討論二群,點擊加群:623325168
  • 個人微信公眾號:徐宏blog , 不定時推送干貨文章,不推送任何廣告。
  • 個人郵箱:xuhongv@yeah.net 24小時在線,有發(fā)必回復(fù)!
  • esp8266源代碼學(xué)習(xí)匯總(持續(xù)更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代碼學(xué)習(xí)匯總(持續(xù)更新,歡迎star):https://github.com/xuhongv/StudyInEsp32
  • 關(guān)注下面微信公眾號二維碼,干貨多多,第一時間推送!

總結(jié)

以上是生活随笔為你收集整理的乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。