From 3b095016fe418aedaab8706a6a52456f0bd0d7b2 Mon Sep 17 00:00:00 2001 From: scayac Date: Mon, 16 Feb 2026 20:44:25 +0100 Subject: [PATCH] Add WPA2-Enterprise PEAP support and update configuration UI --- README.md | 47 +++++++++++++++++++- data/settings.html | 62 +++++++++++++++++++++++--- src/main.cpp | 107 +++++++++++++++++++++++++++++++++++++++------ src/server.cpp | 12 +++++ 4 files changed, 209 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 7240321..3b70e74 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Squelette d'application web pour ESP32 avec interface de gestion via dashboard w - **Dashboard web responsive** - Interface utilisateur moderne et adaptative - **Authentification sécurisée** - Système de login avec sessions et hash SHA-256 - **Configuration WiFi** - Mode Station et Point d'Accès automatique +- **WPA2-Enterprise PEAP** - Connexion PEAP (sans certificat) avec utilisateur/mot de passe (MSCHAPv2) - **API REST** - Endpoints pour configuration, statistiques et changement de mot de passe - **Gestion des mots de passe** - Changement sécurisé avec validation de l'ancien mot de passe - **Mise à jour OTA** - Mise à jour du firmware et système de fichiers via web avec modales de confirmation @@ -69,7 +70,9 @@ platformio device monitor --environment esp32 1. Accédez à la page **Paramètres** 2. Section **Configuration WiFi** -3. Entrez le SSID et le mot de passe de votre réseau +3. Choisissez le type de sécurité : + - **WPA2-PSK** (classique) : SSID + mot de passe WiFi + - **WPA2-Enterprise PEAP** : SSID + utilisateur + mot de passe (sans certificat) 4. Cliquez sur **Enregistrer WiFi** 5. L'ESP32 redémarre et se connecte à votre réseau @@ -176,7 +179,10 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l }, "wifi": { "ssid": "Nom_du_réseau", + "security": "wpa2", "password": "mot_de_passe_wifi", + "eap_username": "utilisateur_peap", + "eap_password": "mot_de_passe_peap", "ap_password": "webapp123" }, "system": { @@ -189,6 +195,44 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l } ``` +### Exemple sécurisé prêt à copier (WPA2-Enterprise PEAP) + +```json +{ + "auth": { + "username": "admin", + "password_hash": "hash_sha256_du_mot_de_passe" + }, + "wifi": { + "ssid": "Mon-SSID-Entreprise", + "security": "wpa2_peap", + "password": "", + "eap_username": "prenom.nom", + "eap_password": "", + "ap_password": "webapp123" + }, + "system": { + "hostname": "ESP32-Webapp", + "session_timeout": 60 + }, + "params": { + "app_name": "ESP32 Webapp" + } +} +``` + +Notes: +- Aucun certificat n'est requis pour ce mode PEAP. +- Le mode PEAP est configuré en auto avec authentification interne MSCHAPv2. +- Remplacez `eap_username` par votre identifiant entreprise. +- Laissez `eap_password` vide dans le fichier, puis saisissez-le uniquement dans l'interface web. + +Procédure recommandée (sans secret en clair dans les fichiers): +1. Téléversez cette configuration avec `eap_password` vide. +2. Ouvrez la page Paramètres de l'ESP32. +3. Sélectionnez `WPA2-Enterprise PEAP`, saisissez l'utilisateur et le mot de passe PEAP. +4. Enregistrez : l'ESP32 redémarre et se connecte. + ## 🛠️ Dépendances - **ESPAsyncWebServer** - Serveur web asynchrone @@ -204,6 +248,7 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l ### L'ESP32 ne se connecte pas au WiFi 1. Vérifiez le SSID et le mot de passe dans la configuration +2. En mode WPA2-PEAP, vérifiez l'utilisateur/mot de passe PEAP 2. Assurez-vous que le réseau WiFi est en 2.4 GHz (l'ESP32 ne supporte pas le 5 GHz) 3. L'ESP32 passera automatiquement en mode AP si la connexion échoue diff --git a/data/settings.html b/data/settings.html index 28c0277..c2c2f52 100644 --- a/data/settings.html +++ b/data/settings.html @@ -23,15 +23,33 @@

Configuration WiFi

+
+ + +
+
-
+
+ + + +
@@ -88,13 +106,24 @@