C’est aussi ma constatation.
Si j’ai bien lu, maintenant il existe l’ide d’Espressif qui fonctionne avec Éclipse. Pour utiliser ce denier là aussi c’est pas toujours évident à configurer.
Rélfexion autour d'un ESP32
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Rélfexion autour d'un ESP32
Petite question.
Un ESP en tant que client peut se connecter via la Wi-Fi à l’internet.
Mais pour un ESP en tant que serveur, il ne peut de base être vu qu’en local.
Dans mon cas, j’ai un broker MQTT sur ESP avec qui je voudrais communiquer via internet. J’ai lu qu’il existe des solutions, mais vient rapidement l’aspect sécurité.
T’es tu déjà penché sur le sujet ?
Un ESP en tant que client peut se connecter via la Wi-Fi à l’internet.
Mais pour un ESP en tant que serveur, il ne peut de base être vu qu’en local.
Dans mon cas, j’ai un broker MQTT sur ESP avec qui je voudrais communiquer via internet. J’ai lu qu’il existe des solutions, mais vient rapidement l’aspect sécurité.
T’es tu déjà penché sur le sujet ?
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Rélfexion autour d'un ESP32
alors oui je me suis penché sur la question, oui j'ai galéré, oui j'ai fini par y arriver pour mon serveur HomeAssistant et un serveur web local et non je ne connais pas toutes les solutions. Suis je capable d'expliquer ? ben on va voir ...
Je l'ai fait pour du trafc http, pas avec mqtt, mais le principe reste valide. En http c'est "http" et "https" et en mqtt c'est "plain mqtt" et "mqtt over TLS".
Un ESP connecté au point d'accès wifi local a son adresse du genre 192.168.1.77 (j'invente pour l'exemple).
Il est accessible localement en mqtt simple, pas "mqtt over tls". Le trafic MQTT simple c'est sur le port 1883 en standard.
Ton routeur a une adresse externe ipv4, vue d'internet. Elle t'es attribuée par ton provider. Imaginons que c'est 99.99.99.255. (pure invention)
Pour accéder à ton ESP depuis l'extérieur de ton réseau local (internet), deux solutions que je connais :
1. solution simple et pas sécurisée du tout
Tu fais du "port forwarding" NAT du port 1883 entrant vers l'adresse interne de ton ESP 192.168.1.77:1883 et le tour est joué. J'avais dit que c'est simple !
Il faut aussi s'assurer que le firewall de ton routeur ne bloque pas le port 1883, on ne sait jamais.
De l'extérieur tu te connectes sur ton adresse externe 99.99.99.255:1883 et tu vois le serveur de l'ESP.
C'est archi risqué car pas crypté et ça ouvre une porte non sécurisée sur ton réseau.
Donc en dehors de faire un test pour voir, c'est une solution a proscrire.
2. avec un reverse proxy
L'idée est d'utiliser cette fois le port externe 8883 (standard mqtt sécurisé) pour d'accéder depuis l'extérieur en "mqtt over TLS" sur l'adresse 99.99.99.255:8883
On pourrait se dire qu'il suffit de le forwarder directement vers ton ESP 192.168.1.77:1883 mais ça n'irait pas parce l'ESP n'a pas de certificat de sécurité valide et la connexion SSL sera refusée.
C'est là que la galère commence.
On pourrait installer un certificat SSL sur l'ESP32 et le laisser tout encrypter mais ses ressources sont limitées et c'est pas recommandé même si ça existe avec let's encrypt et WiFiClientSecure. En http j'ai trouvé des pistes. Ca doit aussi marcher pour mqtt mais partout je vois que l'encryption SSL mets l'ESP32 a genoux. j'ai pas poursuivi la piste.
La solution est d'utiliser un "reverse proxy". C'est une machine puissante (un pc ou un RPI) en local qui reçoit le trafic SSL entrant, qui a un certificat de sécurité SSL et qui transfère le trafic vers ton ESP sans encryption ssl. Le reverse proxy sert de relais. C'est vers lui que tu fais ton transfert de port.
J'ai utilisé Nginx installé sur mon serveur homeassistant (un minipc) et un certificat let's Encrypt. J'ai configuré pour du trafic entrant https vers un serveur local en http, mais il se fiche du protocole ça doit marcher aussi avec mqtt. J'ai galéré à configurer tout ça parce que en plus, je passais par un DDNS duckdns pour avoir une jolie adresse stable et pas une adresse ip externe qui change (mon fournisseur internet ne donne pas d'adresse externe fixe).
Je l'ai fait pour du trafc http, pas avec mqtt, mais le principe reste valide. En http c'est "http" et "https" et en mqtt c'est "plain mqtt" et "mqtt over TLS".
Un ESP connecté au point d'accès wifi local a son adresse du genre 192.168.1.77 (j'invente pour l'exemple).
Il est accessible localement en mqtt simple, pas "mqtt over tls". Le trafic MQTT simple c'est sur le port 1883 en standard.
Ton routeur a une adresse externe ipv4, vue d'internet. Elle t'es attribuée par ton provider. Imaginons que c'est 99.99.99.255. (pure invention)
Pour accéder à ton ESP depuis l'extérieur de ton réseau local (internet), deux solutions que je connais :
1. solution simple et pas sécurisée du tout
Tu fais du "port forwarding" NAT du port 1883 entrant vers l'adresse interne de ton ESP 192.168.1.77:1883 et le tour est joué. J'avais dit que c'est simple !
Il faut aussi s'assurer que le firewall de ton routeur ne bloque pas le port 1883, on ne sait jamais.
De l'extérieur tu te connectes sur ton adresse externe 99.99.99.255:1883 et tu vois le serveur de l'ESP.
C'est archi risqué car pas crypté et ça ouvre une porte non sécurisée sur ton réseau.
Donc en dehors de faire un test pour voir, c'est une solution a proscrire.
2. avec un reverse proxy
L'idée est d'utiliser cette fois le port externe 8883 (standard mqtt sécurisé) pour d'accéder depuis l'extérieur en "mqtt over TLS" sur l'adresse 99.99.99.255:8883
On pourrait se dire qu'il suffit de le forwarder directement vers ton ESP 192.168.1.77:1883 mais ça n'irait pas parce l'ESP n'a pas de certificat de sécurité valide et la connexion SSL sera refusée.
C'est là que la galère commence.
On pourrait installer un certificat SSL sur l'ESP32 et le laisser tout encrypter mais ses ressources sont limitées et c'est pas recommandé même si ça existe avec let's encrypt et WiFiClientSecure. En http j'ai trouvé des pistes. Ca doit aussi marcher pour mqtt mais partout je vois que l'encryption SSL mets l'ESP32 a genoux. j'ai pas poursuivi la piste.
La solution est d'utiliser un "reverse proxy". C'est une machine puissante (un pc ou un RPI) en local qui reçoit le trafic SSL entrant, qui a un certificat de sécurité SSL et qui transfère le trafic vers ton ESP sans encryption ssl. Le reverse proxy sert de relais. C'est vers lui que tu fais ton transfert de port.
J'ai utilisé Nginx installé sur mon serveur homeassistant (un minipc) et un certificat let's Encrypt. J'ai configuré pour du trafic entrant https vers un serveur local en http, mais il se fiche du protocole ça doit marcher aussi avec mqtt. J'ai galéré à configurer tout ça parce que en plus, je passais par un DDNS duckdns pour avoir une jolie adresse stable et pas une adresse ip externe qui change (mon fournisseur internet ne donne pas d'adresse externe fixe).
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Rélfexion autour d'un ESP32
OK, merci, je vois le principe qui est au final le même que pour le forum.
J’ai le rpi et regarde aussi de ce côté.
J’ai le rpi et regarde aussi de ce côté.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Rélfexion autour d'un ESP32
Au final, et vu le RPI j'ai fait autrement.
Raspberrypi propose un nouveau service, en version bêta qui permet de connecter à son RPI via Internet.
Il faut avoir l'OS 64 bit et installer rpi-connect, créer un compte et puis se connecter soit à la console ou au bureau via internet et leur serveur.
C'est simple et gratuit.
Delà, je devrais pouvoir envoyer mes messages MQTT à mon Broker.
Raspberrypi propose un nouveau service, en version bêta qui permet de connecter à son RPI via Internet.
Il faut avoir l'OS 64 bit et installer rpi-connect, créer un compte et puis se connecter soit à la console ou au bureau via internet et leur serveur.
C'est simple et gratuit.
Delà, je devrais pouvoir envoyer mes messages MQTT à mon Broker.
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Rélfexion autour d'un ESP32
c'est cool ça
Ca fait partie des techniques que je ne connais pas: Amazon, google , homeAssistant, ... arrivent à communiquer depuis leur cloud avec leurs appareils de façon sécurisée sans qu'on ait a faire quoi que ce soit sur notre réseau.
En revanche, je n'imagine pas la fondation Rasperry donner ce genre d'accès illimité gratuit. Il va y avoir des limitations.
Tu aurais le nom du service ou un lien direct ?

Ca fait partie des techniques que je ne connais pas: Amazon, google , homeAssistant, ... arrivent à communiquer depuis leur cloud avec leurs appareils de façon sécurisée sans qu'on ait a faire quoi que ce soit sur notre réseau.
En revanche, je n'imagine pas la fondation Rasperry donner ce genre d'accès illimité gratuit. Il va y avoir des limitations.
Tu aurais le nom du service ou un lien direct ?
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
- alka
- Administrateur du site
- Messages : 3098
- Enregistré le : mer. 15 juil. 2015 15:18
- Localisation : 92
- Contact :
Re: Rélfexion autour d'un ESP32
merci. basé webRTC comme les autres. Faut que j'investigue ça un peu plus.
- thierryvalk
- Administrateur du site
- Messages : 3770
- Enregistré le : jeu. 9 juil. 2015 20:08
- Localisation : Belgique
Re: Rélfexion autour d'un ESP32
Oui, nous avons toujours notre serveur et nom de domaine dspiy.be, on peut toujours y implanter quelque chose de similaire.
Retourner vers « DSPiy général »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités