🛠 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

Objectifs

Passer du HTTP en clair au TLS : interroger une API via HTTPS avec WiFiSSLClient, comprendre la vérification de certificat, et découvrir l'ATECC608A-MAHDA-T, la puce de chiffrement embarquée sur la GIGA R1 WiFi qui sert de racine de confiance matérielle (stockage sécurisé de clés, authentification). C'est la brique indispensable avant MQTT/TLS (port 8883) ou toute intégration cloud sérieuse.

Matériel

Code complet

// GIGA R1 WiFi — requête HTTPS via WiFiSSLClient (TLS, port 443)
// NB : la disponibilite exacte de WiFiSSLClient selon le core (mbed ou Zephyr)
// doit être vérifiée 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--- réponse 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); }

Vérification attendue

Après « Canal TLS établi », la réponse HTTP chiffrée en transit s'affiche en clair dans le moniteur (le déchiffrement a lieu sur la carte). Débranchez l'antenne ou faussez le SSID : la connexion échoue proprement sans jamais retomber en HTTP. Le code d'échec TLS aide à distinguer un problème réseau d'un problème de certificat.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels