🛠 HTTPS avec validation de certificat racine

Arduino MKR WiFi 1010 · avance · Schéma : IMG-mkr-wifi-1010-avance-1-mkrwifi-https-certificats.svg — Poignée de main TLS entre le WiFiSSLClient de la MKR WiFi 1010 et un serveur HTTPS, le certificat du serveur étant vérifié contre le magasin de CA racines stocké dans le module NINA.

Objectifs

Passer du HTTP clair au HTTPS avec WiFiSSLClient : la poignée de main TLS est exécutée par le module NINA, qui vérifie le certificat du serveur contre son magasin interne de CA racines (bundle reconstruit depuis la liste Android, embarqué par le firmware nina-fw). On apprend à diagnostiquer les échecs de validation et à vivre avec les bugs TLS connus du firmware.

Matériel

Code complet

#include <WiFiNINA.h>

const char* SSID = "votre-ssid";
const char* PASS = "votre-mot-de-passe";
WiFiSSLClient secure;   // TLS + validation CA embarquée dans le NINA

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

  if (secure.connect("www.howsmyssl.com", 443)) {
    secure.println("GET /a/check HTTP/1.1");
    secure.println("Host: www.howsmyssl.com");
    secure.println("Connection: close");
    secure.println;
    while (secure.available) Serial.write(secure.read);
    secure.stop;                       // libere la session TLS
  } else {
    Serial.println("Handshake TLS KO - firmware/CA a vérifier");
  }
}

void loop {}

Vérification attendue

La réponse JSON de howsmyssl s'affiche, preuve que le canal est chiffré et le certificat validé. secure.connect renvoie 0 tant que la CA émettrice n'est pas dans le bundle du module : mettez d'abord le firmware à jour avant de soupçonner votre code. Appelez toujours stop : chaque session TLS consomme la précieuse RAM du NINA.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels