Λυπούμαστε, το πρόγραμμα περιήγησής σας δεν υποστηρίζει JavaScript!
Σύνδεση

Ρύθμιση επαλήθευσης πιστοποιητικών MQTTS και HTTPS σε μετρητή IAMMETER

Οι μετρητές IAMMETER με υλικολογισμικό i.91.065.9 ή νεότερο μπορούν να επαληθεύουν το πιστοποιητικό διακομιστή όταν ανεβάζουν δεδομένα μέσω MQTTS ή HTTPS. Αυτό προσθέτει έλεγχο αλυσίδας πιστοποιητικών και ονόματος διακομιστή στις ασφαλείς εξερχόμενες συνδέσεις.

Το άρθρο αφορά τη ρύθμιση εμπιστοσύνης TLS. Δεν ρυθμίζει θέματα MQTT, payload JSON ή ανακάλυψη Home Assistant. Για τη δημοσίευση MQTT, δείτε Μετρητής MQTT: δημοσιεύστε δεδομένα IAMMETER στον δικό σας MQTT broker.

Σε αυτή τη σελίδα

Επιλέξτε λειτουργία επαλήθευσης πιστοποιητικού

Οι πελάτες MQTTS και HTTPS του IAMMETER υποστηρίζουν τρεις λειτουργίες επαλήθευσης πιστοποιητικού διακομιστή:

Λειτουργία Αλυσίδα πιστοποιητικών Όνομα διακομιστή Χρήση
builtin Επαλήθευση με Root CA ενσωματωμένες στο υλικολογισμικό Επαληθεύεται Συνιστάται για δημόσιες υπηρεσίες με υποστηριζόμενη αλυσίδα
custom Επαλήθευση με PEM Root CA του χρήστη Επαληθεύεται Ιδιωτική PKI, αυτοϋπογεγραμμένα πιστοποιητικά ή μη ενσωματωμένες δημόσιες ρίζες
none Δεν επαληθεύεται Δεν επαληθεύεται Μόνο προσωρινή συμβατότητα ή διάγνωση

Οι ρυθμίσεις ισχύουν όταν η συσκευή IAMMETER λειτουργεί ως πελάτης TLS και ανεβάζει δεδομένα σε MQTTS broker ή διακομιστή HTTPS. Δεν ενεργοποιούν HTTPS στον τοπικό Web server της συσκευής.

builtin

Η builtin είναι η προεπιλεγμένη λειτουργία. Χρησιμοποιείται όταν δεν έχει αποθηκευτεί προηγούμενη ρύθμιση επαλήθευσης TLS και επανέρχεται μετά τη διαγραφή της διαμόρφωσης TLS CA ή την εργοστασιακή επαναφορά.

Το υλικολογισμικό περιέχει αυτές τις Root CA:

  • DigiCert Global Root G2
  • ISRG Root X1

Η συσκευή επαληθεύει τόσο την αλυσίδα όσο και το όνομα διακομιστή. Ο MQTTS broker ή διακομιστής HTTPS πρέπει να παρουσιάζει πιστοποιητικό με αλυσίδα προς μία από αυτές τις ρίζες, και το Subject Alternative Name (SAN) πρέπει να ταιριάζει με τη ρυθμισμένη διεύθυνση διακομιστή.

Αν η διεύθυνση μεταφόρτωσης χρησιμοποιεί IP, το SAN πρέπει να περιλαμβάνει ακριβώς αυτή την IP. Ένα όνομα DNS δεν ταιριάζει με μια IP, ακόμη κι αν οδηγούν στον ίδιο διακομιστή.

custom

Η custom κάνει τον ίδιο έλεγχο αλυσίδας και ονόματος με την builtin, αλλά εμπιστεύεται το πιστοποιητικό PEM CA που ανέβασε ο διαχειριστής. Χρησιμοποιήστε την όταν:

  • το πιστοποιητικό διακομιστή εκδίδεται από ιδιωτική CA·
  • η εγκατάσταση χρησιμοποιεί αυτοϋπογεγραμμένο πιστοποιητικό διακομιστή· ή
  • η απαιτούμενη δημόσια Root CA δεν υπάρχει στο υλικολογισμικό.

Για ιδιωτική PKI ανεβάστε το πιστοποιητικό της Root CA. Ο διακομιστής TLS πρέπει ακόμη να στέλνει τα απαραίτητα ενδιάμεσα πιστοποιητικά κατά τη χειραψία. Αυτοϋπογεγραμμένο πιστοποιητικό διακομιστή μπορεί να ανέβει ως άγκυρα εμπιστοσύνης, αλλά το SAN πρέπει να ταιριάζει με το ρυθμισμένο όνομα ή την IP.

none

Η none εξακολουθεί να δημιουργεί κρυπτογραφημένη σύνδεση TLS, αλλά δεν επαληθεύει αλυσίδα ή όνομα διακομιστή. Μοιάζει με παλαιότερη συμπεριφορά TLS χωρίς έλεγχο ταυτότητας διακομιστή.

Αυτή η λειτουργία είναι ευάλωτη σε επιθέσεις ενδιάμεσου. Χρησιμοποιήστε την μόνο προσωρινά για συμβατότητα ή διάγνωση. Στην παραγωγή προτιμήστε builtin ή custom.

Απαιτήσεις και σημαντικά όρια

Τα API διαμόρφωσης TLS CA απαιτούν ενεργοποιημένο Local Admin Security. Κάθε αίτημα πρέπει να περιλαμβάνει το ρυθμισμένο όνομα χρήστη και τον κωδικό διαχειριστή μέσω HTTP Basic Authentication.

Ο υπολογιστής με curl ή Swagger UI πρέπει να φτάνει στην τοπική IP της συσκευής. Οι πελάτες MQTTS και HTTPS μοιράζονται μία λειτουργία επαλήθευσης και μία προσαρμοσμένη CA, άρα η αλλαγή ισχύει για την ασφαλή λειτουργία μεταφόρτωσης που χρησιμοποιεί η συσκευή.

Επανεκκινήστε τη συσκευή μετά από αλλαγές TLS, ώστε ο εξερχόμενος πελάτης να δημιουργηθεί με τις νέες ρυθμίσεις.

Τα παραδείγματα χρησιμοποιούν αυτές τις τιμές αντικατάστασης:

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

Αντικαταστήστε τις με την πραγματική διεύθυνση συσκευής και τα διαπιστευτήρια διαχειριστή.

Ελέγξτε την τρέχουσα λειτουργία TLS

API:

GET /api/tls/ca/status

Παράδειγμα:

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

Παράδειγμα απόκρισης:

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

Η απόκριση αναφέρει την επιλεγμένη λειτουργία και, αν υπάρχει αποθηκευμένη προσαρμοσμένη CA, το μήκος και τη σύνοψη SHA-256 της.

Επιλέξτε επαλήθευση builtin

API:

POST /api/tls/ca/select

Παράδειγμα:

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

Επανεκκινήστε τη συσκευή μετά από επιτυχή απόκριση.

Επιλέξτε none για προσωρινή διάγνωση

API:

POST /api/tls/ca/select

Παράδειγμα:

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

Η απόκριση προειδοποιεί ότι η επαλήθευση πιστοποιητικού διακομιστή είναι απενεργοποιημένη. Επανεκκινήστε μετά την αλλαγή και επιστρέψτε σε builtin ή custom μετά τη διάγνωση.

Ανεβάστε και επιλέξτε προσαρμοσμένη CA

Η μεταφόρτωση CA και η επιλογή custom είναι ξεχωριστές ενέργειες. Η μεταφόρτωση δεν αλλάζει αυτόματα την ενεργή λειτουργία.

Απαιτήσεις αρχείου προσαρμοσμένης CA

Το αρχείο πρέπει να πληροί όλες τις απαιτήσεις:

  • μορφή πιστοποιητικού PEM·
  • ακατέργαστο σώμα αιτήματος, όχι JSON ούτε multipart/form-data·
  • Content-Type: application/x-pem-file·
  • μήκος 1 έως 3072 byte, μαζί με κεφαλίδες PEM, αλλαγές γραμμής και κενά·
  • περιέχει -----BEGIN CERTIFICATE----- και -----END CERTIFICATE-----·
  • δεν περιέχει ιδιωτικό κλειδί.

Το όριο 3072 byte αφορά ολόκληρο το σώμα του HTTP αιτήματος. Αρχείο PEM 3072 byte γίνεται δεκτό, ενώ 3073 byte απορρίπτεται.

Ελέγξτε το μέγεθος αρχείου πριν το ανεβάσετε:

wc -c root-ca.pem

Βήμα 1: Ανεβάστε την CA

API:

POST /api/tls/ca/upload

Παράδειγμα:

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

Παράδειγμα επιτυχούς απόκρισης:

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

Η συσκευή αποθηκεύει την CA σε πολλαπλά μπλοκ KV και ελέγχει το αποθηκευμένο μήκος και τη σύνοψη SHA-256 πριν τη χαρακτηρίσει ενεργή. Διακοπή εγγραφής δεν αντικαθιστά την προηγούμενη έγκυρη CA.

Βήμα 2: Επιλέξτε custom

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

Η συσκευή απορρίπτει το αίτημα αν δεν υπάρχει αποθηκευμένη έγκυρη προσαρμοσμένη CA. Δεν επιστρέφει σιωπηρά σε none.

Βήμα 3: Επανεκκινήστε και επαληθεύστε

Επανεκκινήστε από την τοπική διαδικτυακή διεπαφή ή χρησιμοποιήστε το προστατευμένο API επανεκκίνησης:

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

Μετά την επανασύνδεση, ζητήστε ξανά την κατάσταση:

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

Επιβεβαιώστε ότι το mode είναι custom, το customCaValid είναι 1, και το μήκος και η σύνοψη SHA-256 συμφωνούν με το πιστοποιητικό που ανεβάσατε.

Διαγράψτε την προσαρμοσμένη CA

API:

POST /api/tls/ca/delete

Παράδειγμα:

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

Η διαγραφή της προσαρμοσμένης CA επαναφέρει και τη λειτουργία builtin. Επανεκκινήστε μετά τη διαγραφή.

Χρησιμοποιήστε το IAMMETER Swagger UI

Τα ίδια API μπορούν να δοκιμαστούν χωρίς χειροκίνητη γραφή εντολών curl:

IAMMETER WEM API Test - TLS CA

  1. Ανοίξτε το WEM API Test σε υπολογιστή που φτάνει στην τοπική IP της συσκευής.
  2. Εισαγάγετε τη διεύθυνση, π.χ. 192.168.1.80, και επιλέξτε Apply.
  3. Επιλέξτε Authorize και εισαγάγετε όνομα χρήστη και κωδικό διαχειριστή.
  4. Ανοίξτε την ομάδα TLS CA - Authenticated.
  5. Με GET /api/tls/ca/status ελέγξτε τη διαμόρφωση.
  6. Χρησιμοποιήστε μεταφόρτωση, επιλογή ή διαγραφή όπως χρειάζεται.
  7. Επανεκκινήστε μετά από αλλαγή λειτουργίας ή πιστοποιητικού.

Η σελίδα Swagger εκτελείται στο πρόγραμμα περιήγησης και στέλνει αιτήματα απευθείας από τον υπολογιστή στη συσκευή IAMMETER. Δεν τα διαμεσολαβεί μέσω IAMMETER Cloud, επομένως χρειάζεται άμεση δικτυακή πρόσβαση στην IP της συσκευής.

Αντιμετώπιση προβλημάτων επαλήθευσης πιστοποιητικών

admin security required

Ενεργοποιήστε το Local Admin Security πριν χρησιμοποιήσετε τα API TLS CA. Οι ρυθμίσεις αυτές δεν αλλάζουν ανώνυμα.

custom CA is missing or invalid

Ανεβάστε επιτυχώς έγκυρη PEM CA πριν επιλέξετε custom. Ζητήστε /api/tls/ca/status και επιβεβαιώστε ότι το customCaValid είναι 1.

Η σύνδεση TLS αποτυγχάνει σε builtin ή custom

Ελέγξτε όλα τα παρακάτω:

  • το ρυθμισμένο όνομα ή IP ταιριάζει με το SAN·
  • το πιστοποιητικό ισχύει τώρα και η ώρα συσκευής είναι σωστή·
  • ο διακομιστής στέλνει τα απαιτούμενα ενδιάμεσα πιστοποιητικά·
  • η επιλεγμένη Root CA εξέδωσε ή μέσω της αλυσίδας εμπιστεύεται το πιστοποιητικό διακομιστή·
  • η συσκευή επανεκκινήθηκε μετά την αλλαγή TLS.

Το TLS λειτουργεί σε none, αλλά αποτυγχάνει στις λειτουργίες επαλήθευσης

Συνήθως αυτό δείχνει πρόβλημα αλυσίδας πιστοποιητικών, ονόματος, περιόδου ισχύος ή ρολογιού συσκευής. Η διατήρηση του none κρύβει την αποτυχία ελέγχου ταυτότητας χωρίς να τη λύνει. Διορθώστε την εγκατάσταση πιστοποιητικών ή ανεβάστε την κατάλληλη Root CA και χρησιμοποιήστε custom.

Πάνω