Oprostite, vaš brskalnik ne podpira JavaScripta!
Prijava

Kako nastaviti preverjanje potrdil MQTTS in HTTPS na števcu IAMMETER

Števci IAMMETER s strojno programsko opremo i.91.065.9 in novejšo lahko pri pošiljanju podatkov prek MQTTS ali HTTPS preverijo potrdilo strežnika. S tem varnim odhodnim povezavam dodajo preverjanje verige potrdil in imena strežnika.

Članek se osredotoča na nastavitev zaupanja TLS. Ne nastavlja tem MQTT, podatkov JSON ali odkrivanja Home Assistant. Za objavljanje MQTT glejte Števec MQTT: objavite podatke IAMMETER svojemu posredniku MQTT.

Na tej strani

Izberite način preverjanja potrdil

Odjemalca MQTTS in HTTPS v IAMMETER podpirata tri načine preverjanja strežniškega potrdila:

Način Veriga potrdil Ime strežnika Namen
builtin Preverjena s korenskimi CA v strojni programski opremi Preverjeno Priporočeno za javne storitve s podprto verigo
custom Preverjena z uporabnikovim korenskim PEM CA Preverjeno Zasebna PKI, samopodpisana potrdila ali manjkajoči javni koreni
none Ni preverjena Ni preverjeno Samo začasna združljivost ali diagnostika

Nastavitve veljajo, ko naprava IAMMETER deluje kot odjemalec TLS in pošilja podatke posredniku MQTTS ali strežniku HTTPS. Ne omogočijo HTTPS na lokalnem spletnem strežniku naprave.

builtin

builtin je privzeti način. Uporabi se, če nastavitev preverjanja TLS še ni shranjena, in se povrne po brisanju konfiguracije TLS CA ali ponastavitvi naprave na tovarniške nastavitve.

Strojna programska oprema vsebuje te korenske CA:

  • DigiCert Global Root G2
  • ISRG Root X1

Naprava preverja verigo potrdil in ime strežnika. Posrednik MQTTS ali strežnik HTTPS mora predložiti potrdilo z verigo do enega od teh korenov, njegov Subject Alternative Name (SAN) pa se mora ujemati z nastavljenim naslovom strežnika.

Če naslov za pošiljanje uporablja IP, mora SAN potrdila vsebovati točno ta IP. Ime DNS se ne ujema z naslovom IP, tudi če oba kažeta na isti strežnik.

custom

custom preverja verigo in ime enako kot builtin, vendar zaupa potrdilu PEM CA, ki ga naloži skrbnik. Uporabite ga, ko:

  • strežniško potrdilo izda zasebni CA;
  • postavitev uporablja samopodpisano strežniško potrdilo; ali
  • potrebni javni korenski CA ni vključen v strojno programsko opremo.

Pri zasebni PKI naložite njeno korensko potrdilo CA. Strežnik TLS mora med rokovanjem še vedno poslati potrebna vmesna potrdila. Samopodpisano strežniško potrdilo je mogoče naložiti kot sidro zaupanja, njegov SAN pa se mora še vedno ujemati z nastavljenim imenom ali naslovom IP.

none

none še vedno vzpostavi šifrirano povezavo TLS, vendar ne preverja verige potrdil ali imena strežnika. To je podobno starejšemu TLS brez preverjanja pristnosti strežnika.

Ta način je ranljiv za napade posrednika. Uporabljajte ga samo začasno za združljivost ali diagnostiko. V produkciji dajte prednost builtin ali custom.

Zahteve in pomembne omejitve

Konfiguracijski API-ji TLS CA zahtevajo omogočen Local Admin Security. Vsaka zahteva mora vključevati nastavljeno skrbniško uporabniško ime in geslo prek HTTP Basic Authentication.

Računalnik z curl ali Swagger UI mora doseči lokalni IP naprave. Odjemalca MQTTS in HTTPS si delita en način preverjanja in en lastni CA, zato sprememba velja za varni način pošiljanja, ki ga naprava uporablja.

Po spremembi TLS napravo znova zaženite, da se odhodni odjemalec ustvari z novimi nastavitvami.

Primeri uporabljajo te nadomestne vrednosti:

DEVICE_IP="192.168.1.80"
ADMIN_USER="admin"
ADMIN_PASSWORD="ExamplePassword1"

Zamenjajte jih z dejanskim naslovom naprave in skrbniškimi podatki.

Preverite trenutni način TLS

API:

GET /api/tls/ca/status

Primer:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  "http://$DEVICE_IP/api/tls/ca/status"

Primer odgovora:

{
  "successful": 1,
  "mode": "builtin",
  "customCaValid": 0,
  "customCaLength": 0,
  "customCaSha256": "",
  "restartRequiredAfterChange": 1
}

Odgovor prikaže izbrani način ter, če obstaja, dolžino in izvleček SHA-256 shranjenega lastnega CA.

Izberite preverjanje builtin

API:

POST /api/tls/ca/select

Primer:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  -X POST "http://$DEVICE_IP/api/tls/ca/select" \
  -H "Content-Type: application/json" \
  -d '{"mode":"builtin"}'

Po uspešnem odgovoru napravo znova zaženite.

Izberite none za začasno diagnostiko

API:

POST /api/tls/ca/select

Primer:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  -X POST "http://$DEVICE_IP/api/tls/ca/select" \
  -H "Content-Type: application/json" \
  -d '{"mode":"none"}'

Odgovor opozori, da je preverjanje strežniškega potrdila izklopljeno. Po spremembi načina napravo znova zaženite in se po diagnostiki vrnite na builtin ali custom.

Naložite in izberite lastni CA

Nalaganje CA in izbira custom sta ločeni operaciji. Nalaganje ne spremeni samodejno aktivnega načina.

Zahteve za datoteko lastnega CA

Naložena datoteka mora izpolnjevati vse zahteve:

  • oblika potrdila PEM;
  • surovo telo zahteve, ne JSON ali multipart/form-data;
  • Content-Type: application/x-pem-file;
  • dolžina od 1 do 3072 bajtov, skupaj z glavami PEM, konci vrstic in presledki;
  • vsebuje -----BEGIN CERTIFICATE----- in -----END CERTIFICATE-----;
  • ne vsebuje zasebnega ključa.

Omejitev 3072 bajtov velja za celotno telo HTTP zahteve. Datoteka PEM s 3072 bajti je sprejeta, s 3073 bajti pa zavrnjena.

Pred nalaganjem preverite velikost datoteke:

wc -c root-ca.pem

Korak 1: Naložite CA

API:

POST /api/tls/ca/upload

Primer:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  -X POST "http://$DEVICE_IP/api/tls/ca/upload" \
  -H "Content-Type: application/x-pem-file" \
  --data-binary @root-ca.pem

Primer uspešnega odgovora:

{
  "successful": 1,
  "length": 1939,
  "sha256": "64-character SHA-256 digest",
  "message": "CA uploaded; select custom mode and restart"
}

Naprava shrani CA v več blokov KV in pred oznako aktivnega preveri shranjeno dolžino in izvleček SHA-256. Prekinjen zapis ne zamenja prejšnjega veljavnega CA.

Korak 2: Izberite custom

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  -X POST "http://$DEVICE_IP/api/tls/ca/select" \
  -H "Content-Type: application/json" \
  -d '{"mode":"custom"}'

Naprava zavrne zahtevo, če veljaven lastni CA ni shranjen. Ne preklopi tiho na none.

Korak 3: Znova zaženite in preverite

Napravo znova zaženite iz lokalnega spletnega vmesnika ali uporabite zaščiteni API za ponovni zagon:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  "http://$DEVICE_IP/api/restart?reset=false"

Ko se naprava znova poveže, ponovno preverite stanje:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  "http://$DEVICE_IP/api/tls/ca/status"

Potrdite, da je mode enak custom, customCaValid enak 1, ter da se dolžina in izvleček SHA-256 ujemata z naloženim potrdilom.

Izbrišite lastni CA

API:

POST /api/tls/ca/delete

Primer:

curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
  -X POST "http://$DEVICE_IP/api/tls/ca/delete"

Brisanje lastnega CA povrne tudi način builtin. Po brisanju napravo znova zaženite.

Uporabite IAMMETER Swagger UI

Iste API-je lahko preizkusite brez ročnega pisanja ukazov curl:

IAMMETER WEM API Test - TLS CA

  1. Odprite WEM API Test v računalniku, ki doseže lokalni IP naprave.
  2. Vnesite naslov naprave, na primer 192.168.1.80, in izberite Apply.
  3. Izberite Authorize ter vnesite skrbniško ime in geslo.
  4. Odprite skupino TLS CA - Authenticated.
  5. S GET /api/tls/ca/status preglejte trenutno konfiguracijo.
  6. Po potrebi uporabite nalaganje, izbiro ali brisanje.
  7. Po spremembi načina ali potrdila napravo znova zaženite.

Stran Swagger deluje v brskalniku in zahteve pošilja neposredno iz računalnika v napravo IAMMETER. Ne uporablja posredovanja prek IAMMETER Cloud, zato mora imeti brskalnik neposredno omrežno povezavo do IP naprave.

Odpravljanje težav pri preverjanju potrdil

admin security required

Pred uporabo API-jev TLS CA omogočite Local Admin Security. Teh nastavitev ni mogoče spreminjati anonimno.

custom CA is missing or invalid

Pred izbiro custom uspešno naložite veljaven PEM CA. Poizvedite /api/tls/ca/status in potrdite, da je customCaValid enak 1.

Povezava TLS ne uspe v builtin ali custom

Preverite vse naslednje:

  • nastavljeno ime ali IP se ujema s SAN potrdila;
  • potrdilo je trenutno veljavno in ura naprave je pravilna;
  • strežnik pošilja potrebna vmesna potrdila;
  • izbrani korenski CA je izdal strežniško potrdilo ali mu zaupa prek verige;
  • naprava je bila po spremembi TLS znova zagnana.

TLS deluje v none, v načinih preverjanja pa ne

To običajno kaže na težavo z verigo potrdil, imenom strežnika, časom veljavnosti ali uro naprave. Če pustite none, napako preverjanja pristnosti samo skrijete, ne odpravite. Popravite postavitev potrdil ali naložite ustrezni korenski CA in uporabite custom.

Na vrh