Kā konfigurēt MQTTS un HTTPS sertifikātu pārbaudi IAMMETER skaitītājā
IAMMETER enerģijas skaitītāji ar aparātprogrammatūru i.91.065.9 un jaunāku var pārbaudīt servera sertifikātu, augšupielādējot datus caur MQTTS vai HTTPS. Tas drošiem izejošajiem savienojumiem pievieno sertifikātu ķēdes un servera nosaukuma pārbaudi.
Raksts ir par TLS uzticamības konfigurēšanu. Tajā netiek iestatītas MQTT tēmas, JSON payload vai Home Assistant atklāšana. MQTT publicēšanai skatiet MQTT skaitītājs: publicējiet IAMMETER datus savā MQTT brokerī.
Šajā lapā
- Izvēlieties sertifikātu pārbaudes režīmu
- Prasības un svarīgas robežas
- Pārbaudiet pašreizējo TLS režīmu
- Izvēlieties builtin pārbaudi
- Izvēlieties none īslaicīgai diagnostikai
- Augšupielādējiet un izvēlieties pielāgotu CA
- Dzēsiet pielāgoto CA
- Izmantojiet IAMMETER Swagger UI
- Sertifikātu pārbaudes problēmu novēršana
Izvēlieties sertifikātu pārbaudes režīmu
IAMMETER MQTTS un HTTPS klienti atbalsta trīs servera sertifikātu pārbaudes režīmus:
| Režīms | Sertifikātu ķēde | Servera nosaukums | Lietojums |
|---|---|---|---|
builtin |
Pārbaude ar aparātprogrammatūras saknes CA | Pārbaudīts | Ieteicams publiskiem pakalpojumiem ar atbalstītu ķēdi |
custom |
Pārbaude ar lietotāja PEM saknes CA | Pārbaudīts | Privāta PKI, pašparakstīti sertifikāti vai neiekļautas publiskās saknes |
none |
Nav pārbaudīta | Nav pārbaudīts | Tikai īslaicīgai saderībai vai diagnostikai |
Šie iestatījumi darbojas, kad IAMMETER ierīce ir TLS klients un augšupielādē datus MQTTS brokerī vai HTTPS serverī. Tie neieslēdz HTTPS ierīces vietējā tīmekļa serverī.
builtin
builtin ir noklusējuma režīms. To izmanto, ja TLS pārbaudes iestatījums vēl nav saglabāts, un atjauno pēc TLS CA konfigurācijas dzēšanas vai rūpnīcas iestatījumu atjaunošanas.
Aparātprogrammatūrā ir šādas saknes CA:
- DigiCert Global Root G2
- ISRG Root X1
Ierīce pārbauda gan sertifikātu ķēdi, gan servera nosaukumu. MQTTS brokerim vai HTTPS serverim jāuzrāda sertifikāts, kura ķēde sasniedz kādu no šīm saknēm, un tā Subject Alternative Name (SAN) jāatbilst konfigurētajai servera adresei.
Ja augšupielādes adrese ir IP adrese, sertifikāta SAN jāietver tieši šī IP adrese. DNS nosaukums neatbilst IP adresei, pat ja abi norāda uz to pašu serveri.
custom
custom veic tādu pašu ķēdes un nosaukuma pārbaudi kā builtin, bet uzticas administratora augšupielādētajam PEM CA sertifikātam. Izmantojiet to, ja:
- servera sertifikātu izdevusi privāta CA;
- izvietojumā lietots pašparakstīts servera sertifikāts; vai
- nepieciešamā publiskā saknes CA nav iekļauta aparātprogrammatūrā.
Privātai PKI augšupielādējiet tās saknes CA sertifikātu. TLS serverim rokasspiediena laikā joprojām jānosūta vajadzīgie starpsertifikāti. Pašparakstītu servera sertifikātu var augšupielādēt kā uzticamības enkuru, taču SAN joprojām jāatbilst konfigurētajam nosaukumam vai IP adresei.
none
none joprojām izveido šifrētu TLS savienojumu, taču nepārbauda sertifikātu ķēdi vai servera nosaukumu. Tas līdzinās agrākai TLS darbībai bez servera autentifikācijas.
Šis režīms ir neaizsargāts pret starpnieka uzbrukumiem. Lietojiet to tikai īslaicīgi saderības pārbaudei vai diagnostikai. Ražošanas vidē dodiet priekšroku builtin vai custom.
Prasības un svarīgas robežas
TLS CA konfigurācijas API prasa ieslēgtu Local Admin Security. Katrā pieprasījumā jāiekļauj konfigurētais administratora lietotājvārds un parole ar HTTP Basic Authentication.
Datoram ar curl vai Swagger UI jāsasniedz ierīces vietējā IP adrese. MQTTS un HTTPS klienti koplieto vienu pārbaudes režīmu un vienu pielāgoto CA, tāpēc izmaiņas attiecas uz ierīces izmantoto drošo augšupielādes režīmu.
Pēc TLS konfigurācijas maiņas restartējiet ierīci, lai izejošais klients tiktu izveidots ar jaunajiem iestatījumiem.
Piemēros izmantoti šie vietturi:
DEVICE_IP="192.168.1.80"
ADMIN_USER="admin"
ADMIN_PASSWORD="ExamplePassword1"
Aizstājiet tos ar faktisko ierīces adresi un administratora akreditācijas datiem.
Pārbaudiet pašreizējo TLS režīmu
API:
GET /api/tls/ca/status
Piemērs:
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
"http://$DEVICE_IP/api/tls/ca/status"
Atbildes piemērs:
{
"successful": 1,
"mode": "builtin",
"customCaValid": 0,
"customCaLength": 0,
"customCaSha256": "",
"restartRequiredAfterChange": 1
}
Atbilde norāda izvēlēto režīmu un, ja pielāgotā CA ir saglabāta, tās garumu un SHA-256 kopsavilkumu.
Izvēlieties builtin pārbaudi
API:
POST /api/tls/ca/select
Piemērs:
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
-X POST "http://$DEVICE_IP/api/tls/ca/select" \
-H "Content-Type: application/json" \
-d '{"mode":"builtin"}'
Pēc veiksmīgas atbildes restartējiet ierīci.
Izvēlieties none īslaicīgai diagnostikai
API:
POST /api/tls/ca/select
Piemērs:
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
-X POST "http://$DEVICE_IP/api/tls/ca/select" \
-H "Content-Type: application/json" \
-d '{"mode":"none"}'
Atbilde brīdina, ka servera sertifikāta pārbaude ir atspējota. Pēc režīma maiņas restartējiet ierīci, un pēc diagnostikas atgriezieties pie builtin vai custom.
Augšupielādējiet un izvēlieties pielāgotu CA
CA augšupielāde un custom izvēle ir atsevišķas darbības. Augšupielāde automātiski nemaina aktīvo režīmu.
Pielāgotās CA faila prasības
Augšupielādētajam failam jāatbilst visām prasībām:
- PEM sertifikāta formāts;
- neapstrādāts pieprasījuma saturs, ne JSON vai
multipart/form-data; Content-Type: application/x-pem-file;- garums 1–3072 baiti, ieskaitot PEM galvenes, rindu beigas un atstarpes;
- satur
-----BEGIN CERTIFICATE-----un-----END CERTIFICATE-----; - nesatur privāto atslēgu.
3072 baitu limits attiecas uz visu HTTP pieprasījuma saturu. 3072 baitu PEM fails tiek pieņemts, 3073 baitu fails tiek noraidīts.
Pirms augšupielādes pārbaudiet faila izmēru:
wc -c root-ca.pem
1. solis: Augšupielādējiet CA
API:
POST /api/tls/ca/upload
Piemērs:
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
Veiksmīgas atbildes piemērs:
{
"successful": 1,
"length": 1939,
"sha256": "64-character SHA-256 digest",
"message": "CA uploaded; select custom mode and restart"
}
Ierīce saglabā CA vairākos KV blokos un pārbauda saglabāto garumu un SHA-256 kopsavilkumu, pirms atzīmē to kā aktīvu. Pārtraukta rakstīšana neaizstāj iepriekšējo derīgo CA.
2. solis: Izvēlieties custom
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
-X POST "http://$DEVICE_IP/api/tls/ca/select" \
-H "Content-Type: application/json" \
-d '{"mode":"custom"}'
Ja nav saglabāta derīga pielāgotā CA, ierīce pieprasījumu noraida. Tā klusām nepārslēdzas uz none.
3. solis: Restartējiet un pārbaudiet
Restartējiet ierīci vietējā tīmekļa saskarnē vai ar aizsargāto restartēšanas API:
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
"http://$DEVICE_IP/api/restart?reset=false"
Pēc ierīces atkārtotas pieslēgšanās vēlreiz vaicājiet statusu:
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
"http://$DEVICE_IP/api/tls/ca/status"
Apstipriniet, ka mode ir custom, customCaValid ir 1, un norādītais garums un SHA-256 kopsavilkums atbilst augšupielādētajam sertifikātam.
Dzēsiet pielāgoto CA
API:
POST /api/tls/ca/delete
Piemērs:
curl --user "$ADMIN_USER:$ADMIN_PASSWORD" \
-X POST "http://$DEVICE_IP/api/tls/ca/delete"
Pielāgotās CA dzēšana atjauno arī režīmu builtin. Pēc dzēšanas restartējiet ierīci.
Izmantojiet IAMMETER Swagger UI
Tos pašus API var pārbaudīt, manuāli nerakstot curl komandas:
IAMMETER WEM API Test - TLS CA
- Atveriet WEM API Test datorā, kas sasniedz ierīces vietējo IP.
- Ievadiet ierīces adresi, piemēram,
192.168.1.80, un izvēlieties Apply. - Izvēlieties Authorize un ievadiet administratora lietotājvārdu un paroli.
- Atveriet grupu TLS CA - Authenticated.
- Ar
GET /api/tls/ca/statusapskatiet pašreizējo konfigurāciju. - Pēc vajadzības izmantojiet augšupielādi, izvēli vai dzēšanu.
- Pēc režīma vai sertifikāta maiņas restartējiet ierīci.
Swagger lapa darbojas pārlūkprogrammā un sūta pieprasījumus tieši no datora uz IAMMETER ierīci. Tā neizmanto IAMMETER Cloud starpniekserveri, tāpēc pārlūkprogrammai vajadzīgs tiešs tīkla savienojums ar ierīces IP.
Sertifikātu pārbaudes problēmu novēršana
admin security required
Pirms TLS CA API izmantošanas ieslēdziet Local Admin Security. Šos iestatījumus nevar mainīt anonīmi.
custom CA is missing or invalid
Pirms custom izvēles veiksmīgi augšupielādējiet derīgu PEM CA. Vaicājiet /api/tls/ca/status un pārliecinieties, ka customCaValid ir 1.
TLS savienojums neizdodas režīmā builtin vai custom
Pārbaudiet visu tālāk minēto:
- konfigurētais nosaukums vai IP atbilst sertifikāta SAN;
- sertifikāts pašlaik ir derīgs un ierīces laiks ir pareizs;
- serveris sūta nepieciešamos starpsertifikātus;
- izvēlētā saknes CA ir izdevusi servera sertifikātu vai uzticas tam caur ķēdi;
- ierīce pēc TLS konfigurācijas maiņas restartēta.
TLS darbojas ar none, bet ne pārbaudes režīmos
Tas parasti norāda uz sertifikātu ķēdes, servera nosaukuma, derīguma laika vai ierīces pulksteņa problēmu. Atstājot none, autentifikācijas kļūda tiek paslēpta, nevis atrisināta. Izlabojiet sertifikātu izvietojumu vai augšupielādējiet pareizo saknes CA un lietojiet custom.