Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 31.03.24
Príspevky: 450
Témy: 198
Bydlisko: Poprad-okolie
Príspevok NapísalOffline : 24.04.2020 0:46

V minulom článku sme si rozobrali základné pojmy využívané v MQTT, rozobrali sme si metódy Publish / Subscribe. Dnes si ukážeme možnosti šifrovaného spojenia s MQTT Brokerom, ukážeme si pokročilé možnosti metódy Publish.
Slovenský MQTT Broker - IoT Industries Slovakia II.
Predchádzajúca implementácia pre MQTT (nešifrovaný) protokol bola uspôsobená pre platformy Arduino + Ethernet Wiznet W5100 / W5500, ESP32, ESP8266. Nakoľko Arduino nepodporuje šifrované spojenia z hľadiska výkonu a chýbajúcich implementácii, nie je tento mikrokontróler obsiahnutý pre šifrované spojenie s MQTT Brokerom.

MQTTS (Secured MQTT) je port 8883. Tento port sa používa na šifrované spojenie s webserverom. Implementácie pre ESP8266 a ESP32 vyžadujú rozšírenie hlavičkových súborov o WiFiClientSecure.h. Tieto hlavičkové súbory umožňujú vytvoriť spojenie zabezpečeným socketom. ESP32 využíva Root CA certifikát pre šifrované spojenie, ESP8266 vyžaduje SHA1 fingerprint (odtlačok) certifikátu pre spojenie. Štandardne sa používajú pre HTTPS spojenie s webserverom, avšak je ich možné využiť i pre MQTTS.

Root CA certifikát je možné zo vzdialeného MQTT Brokera získať napríklad nástrojom OpenSSL. OpenSSL je kryptografický nástroj (knižnica), ktorý umožňuje široké spektrum operácii. Používa sa predovšetkým pre generovanie certifikátov, ale jeho využitie je možné aj v rôznych programovacích jazykoch.

Prostedníctvom nástroja OpenSSL je možné vypísať si certifikáty, respektíve reťaz dôvernosti - Chain of Trust v súvislosti s danou doménou. MQTT broker beží na doméne mqtt.iotindustries.sk, využijeme port 8883 pre šifrovaný MQTT protokol.
Príkazom: openssl s_client -showcerts -verify 5 -connect mqtt.iotindustries.sk:8883 < /dev/null získame Chain of Trust a môžeme skopírovať a implementovať Root CA (Koreňový certifikát certifikačnej autority) certifikát do programu pre ESP32. Root CA certifikát sa nachádza vo výpise na konci (vypíšu sa 3 certifikáty v .pem resp. .crt formáte).
Slovenský MQTT Broker - IoT Industries Slovakia II.
Platforma ESP8266 vyžaduje implementáciu šifrovaného spojenia prostredníctvom odtlačku certifikátu v SHA1 formáte (hash). Pre získanie odtlačku certifikátu môžeme opäť využiť nástroj OpenSSL a príkazom: openssl s_client -connect mqtt.iotindustries.sk:8883 -showcerts < /dev/null 2>/dev/null | openssl x509 -in /dev/stdin -sha1 -noout -fingerprint získame odtlačok certifikátu v SHA1 formáte. Tento odtlačok je použitý v zdrojovom kóde pre platformu ESP8266.
Slovenský MQTT Broker - IoT Industries Slovakia II.
Testovaný fingerprint bol pod verziou Arduino Core 2.5.0, 2.5.2. Verzie 2.6.X nemusia validne fungovať z dôvodu, že využívajú iný systém pre HTTPS spojenie (nie fingerprint), vyžaduje sa taktiež Root CA certifikát ako u ESP32.

Prostredníctvom direktív som zostavil jednoduchý program pre MQTTs spojenie pre obe platformy obsiahnuté do jedného zdrojového kódu. Na základe zvolenej platformy sa vykoná kompilácia iba pre tú danú platformu.

Tak ako v predchadzajúcom príklade pre MQTT sa v tomto prípade Publishuje topic esp32/pocitadlo a zároveň sa odoberá - Subscribe pre overenie funkčnosti a zápisu hodnôt. Odosielanie prebieha každých 10 sekúnd. Publish prebieha bez príkazaku retain. V prípade, že mikrokontróler prestane odosielať dáta do topicu po určitej dobe tento topic (ak nebude odoberaný Subscriberom) zahodí.

Knižnica PubSubClient, ktorá sa využíva umožňuje modifikovať pravidlá či už globálne alebo pre jednotlivé topicy. Vo funkcii client.publish(), ktorá využíva dva parametre - topic, obsah správy je možné použiť ďalšie parametre, ktoré umožňujú pridať dĺžku - lenght správy, prípadne je možné nastaviť prostredníctvom boolean parametra 0/1 retain príznak pre MQTT Broker.
Slovenský MQTT Broker - IoT Industries Slovakia II.
V prípade viacerých topicov do ktorých mikrokontróler zapisuje je možné jednotlivo nastavovať retain príznak. Globálnejším riešením s pravidlami pre všetky odosielané topicy je možné implementovať retain príznak priamo do client.connect() funkcie. Je možné využiť údaje pre autentizáciu, nastaviť globálne pravidlá pre topicy a pod.

Dokumentáciu ku knižnici PubSubClient, ktorá sa v príkladoch využíva môžete nájsť na adrese: https://pubsubclient.knolleary.net/api.html

K programu pre MQTT a MQTTs spojenie bol vytvorený aj špeciálny zdrojový kód pre pripojenie platformy ESP32 k podnikovým WiFi sieťam pod WPA/WPA2 Enterprise - Ziggo, eduroam a ďalšie WiFi siete s prihlásením cez meno a heslo.
Nezabúdajte, že MQTT Broker je verejný a vaše dáta môže ktokoľvek vidieť, modifikovať, mazať, využívať.
Všetky programové implementácie môžete nájsť na adrese: https://github.com/martinius96/MQTT-Broker-IoTIndustries


Odpovedať na tému [ Príspevok: 1 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Slovenský MQTT Broker - IoT Industries Slovakia

v Články

0

1151

24.03.2020 1:26

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

1334

16.01.2020 23:59

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Slovakia Cup 2011

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Šport a pohyb

43

2412

15.02.2011 7:23

vladopt Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Tričko NIKE Slovakia

v Šport a pohyb

0

579

13.05.2014 2:17

fAk3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Garmin Nuvi 255 Slovakia roads

v Ostatné programy

2

927

22.07.2009 18:24

Enermax Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Country Manager pre Google Slovakia

v Novinky

1

922

29.12.2010 10:14

emer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Research on consumers from Slovakia

v Vzdelanie, štúdium, škola

2

468

27.09.2014 15:47

renia215 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Telefónica O2 Slovakia má prvých záujemcov o svoje služ

v Novinky

11

1047

25.12.2006 23:43

Tom@S Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Slovenský hokej

v Šport a pohyb

12

789

25.01.2016 14:46

doubleR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Slovenský manuál

v Redakčné systémy

1

665

29.03.2007 3:09

Tom@S Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladam slovensky hubhosting

v Sieťové a internetové programy

0

463

25.02.2008 14:35

Axwell Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Slovenský IT PodCast

v Krčma

6

719

06.03.2010 11:04

Merezcauss Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Slovenský raj rebríky

v Dovolenka, cestovanie a turistika

13

999

11.06.2016 10:49

5had0w Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SLOVENSKÝ JAZYK V LINUXE

v Operačné systémy Unix a Linux

6

851

09.07.2008 14:55

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. slovenský web + český katalóg

v Internetový marketing, SEO, reklama

3

1054

11.12.2007 17:34

Flety Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. slovenský notebook v nemecku

v Notebooky a netbooky

2

285

22.08.2013 17:20

SKiLEX Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra