官方範例
- client-secure-examples.rst (網址如果換了請自行到 GitHub Repositories 尋找)
在寫這篇的時候 (2019/12) 可以查到指紋憑證已經和範例網站 api.github.com 不同,如果沒有 OTA 機制更新 SSL 指紋憑證就是一個大問題,所以 Hoyo 使用自己發憑證的方式解決,因為 ESP8266 並不會像瀏覽器一樣審核發行單位。
--
自己發憑證
根據自己的網站發行一個超久的憑證給 ESP8266 使用,Hoyo 這裡示範的是一個極端的例子
如此即可使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> const char* ssid = "ssid name"; const char* password = "ssid password"; // Socket Server const char* host = "esp8266.hoyo.idv.tw"; const int port = 3003; // Use web browser to view and copy SHA1 fingerprint of the certificate const char fingerprint[] PROGMEM = "24 42 DB E8 31 4E 1E C4 EB 4D 78 B4 EB 74 D0 D1 F0 2D 96 44"; // Use WiFiClientSecure class to create TLS connection WiFiClientSecure client; void(* resetFunc) (void) = 0; void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.println("."); } delay(500); Serial.printf("Using fingerprint '%s'\n", fingerprint); client.setFingerprint(fingerprint); } // void loop() { // if (!client.connected()) { client.connect(host, port); Serial.println("connected"); } } |
--
2,115 total views, 2 views today