[ Príspevok: 1 ] 
AutorSpráva
Offline

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

Registrovaný: 17.02.14
Prihlásený: 07.08.22
Príspevky: 441
Témy: 194 | 194
Bydlisko: Poprad-okolie

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


 [ Príspevok: 1 ] 


Slovenský MQTT Broker - IoT Industries Slovakia II.



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

615

24.03.2020 1:26

martinius96

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

ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

557

16.01.2020 23:59

martinius96

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

2212

15.02.2011 7:23

vladopt

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

Tričko NIKE Slovakia

v Šport a pohyb

0

368

13.05.2014 2:17

fAk3

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

Country Manager pre Google Slovakia

v Novinky

1

827

29.12.2010 10:14

emer

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

Research on consumers from Slovakia

v Vzdelanie, štúdium, škola

2

357

27.09.2014 15:47

renia215

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

Garmin Nuvi 255 Slovakia roads

v Ostatné programy

2

821

22.07.2009 18:24

Enermax

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

940

25.12.2006 23:43

Tom@S

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

Slovenský hokej

v Šport a pohyb

12

658

25.01.2016 14:46

doubleR

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

Slovenský manuál

v Redakčné systémy

1

576

29.03.2007 3:09

Tom@S

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

Slovenský IT PodCast

v Krčma

6

606

06.03.2010 11:04

Merezcauss

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

Slovenský raj rebríky

v Dovolenka, cestovanie a turistika

13

844

11.06.2016 10:49

5had0w

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

Hladam slovensky hubhosting

v Sieťové a internetové programy

0

396

25.02.2008 14:35

Axwell

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

slovenský notebook v nemecku

v Notebooky a netbooky

2

220

22.08.2013 17:20

SKiLEX

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

765

09.07.2008 14:55

walther

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

slovenský web + český katalóg

v Internetový marketing, SEO, reklama

3

969

11.12.2007 17:34

Flety



© 2005 - 2022 PCforum, edited by JanoF