🛠 Client HTTPS/TLS et élément de sécurité ATECC608A

Arduino GIGA R1 WiFi · avance · Schéma : IMG-giga-r1-wifi-avance-7-client-https-tls.svg — GIGA R1 WiFi établissant un tunnel TLS chiffré vers un serveur distant, cadenas et serrure sur le canal, puce ATECC608A mise en évidence sur la carte

Objetivos

Pasar de HTTP en claro a TLS: consultar una API mediante HTTPS con WiFiSSLClient, comprender la verificación de certificados y descubrir el ATECC608A-MAHDA-T, el chip de cifrado integrado en la GIGA R1 WiFi que actúa como raíz de confianza de hardware (almacenamiento seguro de claves, autenticación). Es el componente indispensable antes de MQTT/TLS (puerto 8883) o cualquier integración cloud seria.

Material

Código completo

// GIGA R1 WiFi — requete HTTPS via WiFiSSLClient (TLS, port 443)
// NB : la disponibilite exacte de WiFiSSLClient selon le core (mbed ou Zephyr)
// doit etre verifiee dans le gestionnaire de bibliotheques — voir note ci-dessous.
#include <WiFi.h>
#include <WiFiSSLClient.h>

const char SSID[] = "your-ssid";
const char PASS[] = "your-pass";
const char API[]  = "example.org";

WiFiSSLClient secure;

void setup {
  Serial.begin(115200);
  while (!Serial) {}
  WiFi.begin(SSID, PASS);
  while (WiFi.status != WL_CONNECTED) { Serial.print("."); delay(200); }
  Serial.print("IP "); Serial.println(WiFi.localIP);

  Serial.print("Poignee TLS vers "); Serial.print(API); Serial.println(" : 443...");
  if (!secure.connect(API, 443)) {
    Serial.print("Echec TLS, code "); Serial.println(secure.state);
    while (true);                          // ne pas continuer en clair
  }
  Serial.println("Canal TLS etabli");

  secure.print("GET / HTTP/1.0\r\n");
  secure.print("Host: "); secure.println(API);
  secure.print("Connection: close\r\n\r\n");

  unsigned long debut = millis;
  while (secure.connected && millis - debut < 15000) {
    while (secure.available) Serial.write(secure.read);  // tout lire (#937)
  }
  secure.stop;
  Serial.println("\n--- reponse HTTPS recue ---");
  // La puce ATECC608A (racine de confiance materielle) peut stocker des cles
  // privees/certificats pour l'authentification client ; son acces passe par
  // les utilitaires du core, hors perimetre de ce sketch.
}

void loop { delay(10000); }

Verificación esperada

Tras «Canal TLS establecido», la respuesta HTTP cifrada en tránsito se muestra en claro en el monitor (el descifrado tiene lugar en la placa). Desconecte la antena o altere el SSID: la conexión falla correctamente sin volver nunca a HTTP. El código de error TLS ayuda a distinguir un problema de red de un problema de certificado.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales