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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESP-AT SSL 单向认证指令操作以及问题分析

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP-AT SSL 单向认证指令操作以及问题分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章主要是介紹客戶端認證服務器的 AT 指令操作以及問題分析。

1 SSL 認證涉及到的指令介紹

1.1 AT+SYSFLASH 查詢或讀寫 flash 用戶分區

通過查詢 ESP-AT 指南,如下:

  • 查詢指令 AT+SYSFLASH?
  • 讀寫指令 AT+SYSFLASH=<operation>,<partition>,<offset>,<length>

1.2 AT+CIPSSLCCONF 查詢/設置 SSL 客戶端配置

通過查詢 ESP-AT 指南,如下:

  • 查詢指令 AT+CIPSSLCCONF?
  • 單連接讀寫指令 AT+CIPSSLCCONF=<auth_mode>[,<pki_number>][,<ca_number>]
  • 多連接讀寫指令 AT+CIPSSLCCONF=<linkID>,<auth_mode>[,<pki_number>][,<ca_number>]

2 客戶端認證服務器 AT 指令操作步驟

2.1 生成證書 bin


具體操作可以參考 generate-pki-bin。

2.2 將 CA 證書更新到 flash

指令如下:

AT+SYSFLASH=0,"client_ca",0,4096 AT+SYSFLASH=1,"client_ca",0,1424

操作步驟參考下圖,加載完證書之后,點擊發送文件返回 OK ,就表示更新證書成功了。

補充說明:
1. client_ca 是自己做客戶端 (AT+CIPSTART=…) 用的,用來校驗服務器傳過來的證書。
2. server_ca 是自己做服務器 (AT+CIPSERVER=1) 用的,用來校驗連接到服務器上的客戶端,傳過來的證書。
3. 擦除分區的時候需要保持 4 字節對齊,寫分區輸入實際的大小即可,例如上面證書中 at_ca.bin 是 1.4 KB, 算下來是 1433.6 byte。

2.3 SSL 認證操作

對應操作 log 如下:

AT+CWMODE=1 OK AT+CWJAP="iot","" WIFI DISCONNECT WIFI CONNECTED WIFI GOT IP OK AT+CIPSNTPCFG=1,8,"cn.ntp.org.cn","ntp.sjtu.edu.cn"OK AT+CIPSSLCCONF=2,0,0OK AT+CIPSTART="SSL","192.168.3.129",8739 CONNECTOK CLOSED

3 常見問題以及排查方向

3.1 本地搭建的 ssl server 服務器,測試單向認證(服務器端)發現連接失敗

本地服務器的配置如下:

UART1 端 AT 測試指令 & log 如下:

AT+CWMODE=1 OK AT+CWJAP="iot","" WIFI CONNECTED WIFI GOT IP OK AT+CIPSSLCCONF=2,0,0 //配置單向連接 OK AT+CIPSTART="SSL","192.168.3.129",8739 ERROR

UART0 端 log 如下:

max tx power=78,ret=0 BLUFI BLE is not connected yet ca_len=1164 set ca ok [0;31mE (165183) esp-tls: mbedtls_ssl_handshake returned -0x2700[0m [0;31mE (165184) esp-tls: Failed to open new connection[0m ssl failed ssl create 0 socket fail

從 log 信息中可以看到 -0x2700 表示服務器端的證書驗證失敗了。此時的排查方向為:

  • 先確認服務器和證書是沒有問題的,從服務器端獲取到 CA 證書,通過 openssl 指令驗證。指令為 openssl s_client -host 192.168.3.129 -port 8739 -CAfile at_server_ca/rsa-ca.crt -verify 1

  • 確認服務器沒有問題后,查看操作步驟是否正確。從 log 信息中,我們可以看到并未生成新的證書 bin ,也并未加載新的證書 bin。將 CA 證書更新到 Flash 中, 指令如下:

    • AT+SYSFLASH=0,"client_ca",0,4096
    • AT+SYSFLASH=1,"client_ca",0,1424
  • 還需要注意在認證之前加上 AT+CIPSNTPCFG=1,8,"cn.ntp.org.cn","ntp.sjtu.edu.cn" 這條指令,因為SSL 認證連接需要校驗服務器端的證書,所以需要連接 sntp 來獲取當前時間,用來判斷證書是否過期

  • 如果以上步驟均正確, ssl 連接依然失敗,就需要通過抓包進一步查看了。可參考 Wireshark 抓包指南。

  • 總結

    以上是生活随笔為你收集整理的ESP-AT SSL 单向认证指令操作以及问题分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。