Една седмица си играя с връзка на "малко" устройство и облаци - Amazon, Azure, Google...
"Малката" джаджа е тип Ардуино, но това не е от голямо значение, искам да кажа - значението е че е малко като възможности
но си има възможностите за самата SSL/TLS връзка MQTT - Quectel BG96 модул, user API ThreadX, GPRS
но тук може да бъде всичко, което има интернет например ESP32, Расбери и цялата банда
Това което забелязах - Джавистите от облаците и идея си няма какво е IoT за малка джаджа (тип сензор) което в бъдеще трябва да са милиони
В началото ползвах Python на компа с няколко реда скрипт от Eclipse Paho MQTT за да пробвам кое как къде се "попълва" и после "същото" на дивайса
https://gist.github.com/tomconte/eef8c9 ... 3153eee500с този скрипт подкарах и трите облака по долу
една забележка за скрипта - работи и използва SSL-а на КОМПА на "пълни обороти" което заблуждава -> използва SLL максимално
Накратко за SLL - основно връзката и най-вече ауторизацията
1. С CA_ROOT сертификат издаван за хост за определено време
2. С два сертификата публичен и частен генерирани за самото устройство
3. и със PSK pre-shared-keys "няколко" симетрични ключа за криптиране
Amazon:Работи основно, лесно и добре със вариант 2 - Create Device, Generate сертификати(няколко броя - основен, публичен и частен за самото устройство), download ... клик клик
зареди в девайса и работи OK - за колко време това не знам - да не се изненада някой ако след година сертификата изтече а устройствата са на хиляди километри
за другите два варианта - плати...
тест:
https://www.youtube.com/watch?v=T0Nt-NJTIaYAzure: Основно с PSK ключове - тук ударих на камък - за работата на API-то ThreadX SSL с PSK нямам документацията
за други джажи просто трябва да се инициализира SLL-а с PSK и "трябва" да работи
Опитах да генерирам другите два варианта но не се получи, всякаквите "хелпове" на Microsoft са клик тук, клик там и едно голямо мазало
PSK ключовете се генерират НЕ на сайта, а с разни външни тулсчета или със скриптове
горе в линка се виждат как изглеждат PSK ( auth = {} )
Общо взето "философията" на Microsoft(и на другите) на тема сертификати е ПЛАТИ
Google:Основно с публичен CA_ROOT за хоста mqtt.googleapis.com за "кратко" време
или mqtt.2030.ltsapis.goog с продължителност до 2030
Ауторизацията за MQTT е в паролата, която се генерира с JWT криптиране на определено "изречение" с частен ключ, генериран не къде, а в терминала на облака или комп с openssl
цък цък донлоад (21 век) липсва, с тоя облак би трябва да работят IT "спецове" или Ардуино "деца" !?!
пример парола
Тук чудното беше, че паролата става с дължина над 400...500 байта !!! WTF !? къде замина смисъла на MQTT и сметката за трафика
IoT джаджите би трябва да работят с години - тук се ползва mqtt.2030.ltsapis.goog
има два публични ca_root-a основен и backup със забележка от google, че ги разменят без известие и неизвестно кога
естествено основния не работи
бакъпа е верен, интересното е че в питон скрипта работи, а модула казва, че не е верен хоста и тесла...
за WiFi има заблуда в примерите: тъй като джаджа и комп са в една мрежа
openssl s_client -showcerts -verify 5 -connect HOST/PORT
връща "верен" сертификат, но с даунлоаднат от google има "проблеми" с региона...
iot.eclipse.org:за тестове с публичен CA_ROOT - работи
Общо взето съм тотално разочарован от Облаците...
Някой сигурно проектират - така че внимавайте с какво се захващате