IoT Edge-tanúsítványok kezelése
A következőkre vonatkozik: IoT Edge 1.5
Fontos
Az IoT Edge 1.5 LTS a támogatott kiadás. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.
Minden IoT Edge-eszköz tanúsítványokat használ a futtatókörnyezet és az eszközön futó modulok közötti biztonságos kapcsolatok létrehozásához. Az átjáróként működő IoT Edge-eszközök ugyanazokat a tanúsítványokat használják az alsóbb rétegbeli eszközökhöz való csatlakozáshoz is.
Feljegyzés
A jelen cikkben használt legfelső szintű hitelesítésszolgáltató kifejezés az IoT-megoldás tanúsítványláncának legfelső szintű hitelesítésszolgáltatói tanúsítványára hivatkozik. Nem kell a szindikált hitelesítésszolgáltató tanúsítványgyökerét vagy a szervezet hitelesítésszolgáltatójának gyökerét használnia. Gyakran ez valójában egy köztes hitelesítésszolgáltatói tanúsítvány.
Előfeltételek
Ismernie kell az Azure IoT Edge tanúsítványhasználatának fogalmát, különösen azt, hogy az IoT Edge hogyan használja a tanúsítványokat.
IoT Edge-eszköz.
Ha nincs beállítva IoT Edge-eszköz, létrehozhat egyet egy Azure-beli virtuális gépen. Kövesse az alábbi rövid útmutatók lépéseit a virtuális Linux-eszköz létrehozásához vagy a virtuális Windows-eszköz létrehozásához.
Az IoT Edge konfigurációs fájljának
config.toml
szerkesztése a konfigurációs sablont követően.Ha a
config.toml
sablon nem a sablonon alapul, nyissa meg a sablont , és a megjegyzésben szereplő útmutató segítségével adja hozzá a sablon struktúráját követő konfigurációs szakaszokat.Ha nem konfigurált új IoT Edge-telepítést, másolja a sablont a konfiguráció inicializálásához. Ne használja ezt a parancsot, ha már rendelkezik meglévő konfigurációval. Felülírja a fájlt.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Formázási követelmények
Tipp.
- A tanúsítvány kódolható egy DER (DER-szabályok) nevű bináris reprezentációban, vagy egy PEM (Privacy Enhanced Mail) nevű szöveges reprezentációban. A PEM formátum fejlécet
-----BEGIN CERTIFICATE-----
, majd a base64 kódolású DER-t, majd egy élőlábat-----END CERTIFICATE-----
követ. - A tanúsítványhoz hasonlóan a titkos kulcs bináris DER vagy szöveges ábrázolásÚ PEM formátumban is kódolható.
- Mivel a PEM le van jelölve, olyan PEM-et is létre lehet hozni, amely
CERTIFICATE
egymás után ésPRIVATE KEY
egymás után egyesíti azokat ugyanabban a fájlban. - Végül a tanúsítvány és a titkos kulcs egy PKCS#12 nevű bináris reprezentációban kódolható, amely opcionális jelszóval van titkosítva.
A fájlkiterjesztések tetszőlegesek, és futtatnia kell a file
parancsot, vagy meg kell tekintenie a fájl típusát. A fájlok általában a következő bővítménykonvenciákat használják:
-
.cer
EGY TANÚSÍTVÁNY DER vagy PEM formátumban. -
.pem
egy tanúsítvány, egy titkos kulcs vagy mindkettő PEM formátumban. -
.pfx
PKCS #12 fájl.
Az IoT Edge-hez a tanúsítványnak és a titkos kulcsnak a következőnek kell lennie:
- PEM formátum
- Fájlok elkülönítése
- A legtöbb esetben a teljes lánccal
Ha a PKI-szolgáltatótól kap egy .pfx
fájlt, valószínűleg a tanúsítvány és a titkos kulcs egy fájlban van kódolva. A parancs használatával ellenőrizze, hogy PKCS#12 fájltípus-e file
. A PKCS#12 .pfx
fájlokat PEM-fájlokká alakíthatja az openssl pkcs12 paranccsal.
Ha a PKI-szolgáltató egy fájlt biztosít .cer
, az tartalmazhat ugyanahhoz a tanúsítványhoz tartozó tanúsítványt, mint a .pfx
PKI-szolgáltató által kibocsátott (fő) tanúsítványt. Az ellenőrzéshez vizsgálja meg a fájlt a openssl x509
paranccsal. Ha a kiállító tanúsítványról van szó:
- Ha DER (bináris) formátumban van, konvertálja PEM formátumba a következővel
openssl x509 -in cert.cer -out cert.pem
: . - Használja a PEM-fájlt megbízhatósági csomagként. A megbízhatósági csomagról további információt a következő szakaszban talál.
Fontos
A PKI-infrastruktúrának támogatnia kell az RSA-2048 bites kulcsokat és az EC P-256-kulcsokat. Az EST-kiszolgálóknak például támogatniuk kell ezeket a kulcstípusokat. Más kulcstípusokat is használhat, de csak az RSA-2048 bites kulcsokat és az EC P-256-kulcsokat teszteljük.
Engedélykövetelmények
Az alábbi táblázat az IoT Edge-tanúsítványokhoz szükséges fájl- és könyvtárengedélyeket sorolja fel. A tanúsítványok és a kulcsok /var/aziot/certs/
/var/aziot/secrets/
elsődleges könyvtára.
Fájl vagy könyvtár | Engedélyek | Tulajdonos |
---|---|---|
/var/aziot/certs/ tanúsítványok könyvtára |
drwxr-xr-x (755) | aziotcs |
Tanúsítványfájlok a következőben: /var/aziot/certs/ |
-wr-r--r-- (644) | aziotcs |
/var/aziot/secrets/ kulcsok könyvtára |
drwx------ (700) | aziotks |
Kulcsfájlok a következőben: /var/aziot/secrets/ |
-wr------- (600) | aziotks |
A címtárak létrehozásához, az engedélyek beállításához és a tulajdonos beállításához futtassa a következő parancsokat:
# If the certificate and keys directories don't exist, create, set ownership, and set permissions
sudo mkdir -p /var/aziot/certs
sudo chown aziotcs:aziotcs /var/aziot/certs
sudo chmod 755 /var/aziot/certs
sudo mkdir -p /var/aziot/secrets
sudo chown aziotks:aziotks /var/aziot/secrets
sudo chmod 700 /var/aziot/secrets
# Give aziotcs ownership to certificates
# Read and write for aziotcs, read-only for others
sudo chown -R aziotcs:aziotcs /var/aziot/certs
sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
# Give aziotks ownership to private keys
# Read and write for aziotks, no permission for others
sudo chown -R aziotks:aziotks /var/aziot/secrets
sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
# Verify permissions of directories and files
sudo ls -Rla /var/aziot
A megfelelő tulajdonjoggal és engedéllyel rendelkező lista kimenete hasonló a következő kimenethez:
azureUser@vm:/var/aziot$ sudo ls -Rla /var/aziot
/var/aziot:
total 16
drwxr-xr-x 4 root root 4096 Dec 14 00:16 .
drwxr-xr-x 15 root root 4096 Dec 14 00:15 ..
drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 certs
drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 secrets
/var/aziot/certs:
total 20
drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 .
drwxr-xr-x 4 root root 4096 Dec 14 00:16 ..
-rw-r--r-- 1 aziotcs aziotcs 1984 Jan 14 00:24 azure-iot-test-only.root.ca.cert.pem
-rw-r--r-- 1 aziotcs aziotcs 5887 Jan 14 00:27 iot-edge-device-ca-devicename-full-chain.cert.pem
/var/aziot/secrets:
total 16
drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 .
drwxr-xr-x 4 root root 4096 Dec 14 00:16 ..
-rw------- 1 aziotks aziotks 3243 Jan 14 00:28 iot-edge-device-ca-devicename.key.pem
Megbízható legfelső szintű hitelesítésszolgáltató kezelése (megbízhatósági csomag)
Ha önaláírt hitelesítésszolgáltatói (CA) tanúsítványt használ az IoT Edge-hez való megbízhatóság gyökeréhez, a modulokat megbízhatósági csomagnak nevezzük. A megbízhatósági csomag elérhető az IoT Edge-hez és a kiszolgálókkal kommunikáló modulokhoz. A megbízhatósági csomag konfigurálásához adja meg a fájl elérési útját az IoT Edge konfigurációs fájljában.
Kérje le a legfelső szintű hitelesítésszolgáltató tanúsítványát egy PKI-szolgáltatótól.
Ellenőrizze, hogy a tanúsítvány megfelel-e a formátumkövetelményeknek.
Másolja ki a PEM-fájlt, és adjon hozzáférést az IoT Edge tanúsítványszolgáltatásához. Például könyvtárral
/var/aziot/certs
:# Make the directory if doesn't exist sudo mkdir /var/aziot/certs -p # Change cert directory user and group ownership to aziotcs and set permissions sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs # Copy certificate into certs directory sudo cp root-ca.pem /var/aziot/certs # Give aziotcs ownership to certificate and set read and write permission for aziotcs, read-only for others sudo chown aziotcs:aziotcs /var/aziot/certs/root-ca.pem sudo chmod 644 /var/aziot/certs/root-ca.pem
Az IoT Edge konfigurációs fájljában
config.toml
keresse meg a Megbízhatósági köteg tanúsítvány szakaszát . Ha a szakasz hiányzik, átmásolhatja a konfigurációs sablonfájlból.Tipp.
Ha a konfigurációs fájl még nem létezik az eszközön, akkor sablonként használva
/etc/aziot/config.toml.edge.template
hozzon létre egyet.Állítsa be a
trust_bundle_cert
kulcsot a tanúsítványfájl helyére.trust_bundle_cert = "file:///var/aziot/certs/root-ca.pem"
Alkalmazza a konfigurációt.
sudo iotedge config apply
A legfelső szintű hitelesítésszolgáltató telepítése operációsrendszer-tanúsítványtárolóba
Ha a tanúsítványt a megbízhatósági csomagfájlba telepíti, az elérhetővé válik a tárolómodulok számára, de nem üzemeltethet olyan modulokat, mint az Azure Device Update vagy a Defender. Ha gazdagépszintű összetevőket használ, vagy más TLS-problémákba ütközik, telepítse a legfelső szintű hitelesítésszolgáltatói tanúsítványt is az operációs rendszer tanúsítványtárolójába:
sudo cp /var/aziot/certs/my-root-ca.pem /usr/local/share/ca-certificates/my-root-ca.pem.crt
sudo update-ca-certificates
Tanúsítvány- és titkoskulcs-fájlok importálása
Az IoT Edge meglévő tanúsítványok és titkos kulcsfájlok használatával hitelesítheti vagy tanúsíthatja az Azure-t, új modulkiszolgálói tanúsítványokat állíthat ki, és hitelesítést végezhet az EST-kiszolgálókon. A telepítésükhöz:
Ellenőrizze, hogy a tanúsítvány és a titkos kulcsfájlok megfelelnek-e a formátumkövetelményeknek.
Másolja a PEM-fájlt arra az IoT Edge-eszközre, amelyhez az IoT Edge-modulok hozzáférhetnek. Például a
/var/aziot/
könyvtár.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets # Copy certificate and private key into the correct directory sudo cp my-cert.pem /var/aziot/certs sudo cp my-private-key.pem /var/aziot/secrets
Adjon tulajdonjogot az IoT Edge tanúsítványszolgáltatásának
aziotcs
és kulcsszolgáltatásánakaziotks
a tanúsítványnak és a titkos kulcsnak.# Give aziotcs ownership to certificate # Read and write for aziotcs, read-only for others sudo chown aziotcs:aziotcs /var/aziot/certs/my-cert.pem sudo chmod 644 /var/aziot/certs/my-cert.pem # Give aziotks ownership to private key # Read and write for aziotks, no permission for others sudo chown aziotks:aziotks /var/aziot/secrets/my-private-key.pem sudo chmod 600 /var/aziot/secrets/my-private-key.pem
Ebben
config.toml
a szakaszban keresse meg a konfigurálni kívánt tanúsítvány típusának megfelelő szakaszt. Megkeresheti például a kulcsszótcert
.A konfigurációs sablon példáját használva konfigurálja az eszközidentitás-tanúsítványt vagy az Edge CA-fájlokat. A példaminta a következő:
cert = "file:///var/aziot/certs/my-cert.pem" pk = "file:///var/aziot/secrets/my-private-key.pem"
A konfiguráció alkalmazása
sudo iotedge config apply
A tanúsítványok lejáratakor felmerülő hibák elkerülése érdekében ne felejtse el manuálisan frissíteni a fájlokat és a konfigurációt a tanúsítvány lejárata előtt.
Példa: Eszközidentitás-tanúsítványfájlok használata a PKI-szolgáltatótól
TLS-ügyféltanúsítvány és titkos kulcs kérése a PKI-szolgáltatótól.
Az eszköz identitástanúsítványának követelményei:
- Standard ügyféltanúsítvány-bővítmények: extendedKeyUsage = clientAuth keyUsage = critical, digitalSignature
- Kulcsazonosítók, amelyek segítenek megkülönböztetni az azonos CN-vel rendelkező hitelesítésszolgáltatók kiállítását a hitelesítésszolgáltatói tanúsítvány rotálásához.
- subjectKeyIdentifier = kivonat
- authorityKeyIdentifier = keyid:always,issuer:always
Győződjön meg arról, hogy a köznapi név (CN) megegyezik az IoT Hubon regisztrált IoT Edge-eszközazonosítóval vagy a DPS regisztrációs azonosítójával. Az alábbi eszközidentitás-tanúsítványban Subject: CN = my-device
például a fontos mezőnek kell egyeznie.
Példa eszközidentitás-tanúsítványra:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 48 (0x30)
Signature Algorithm: ecdsa-with-SHA256
Issuer: CN = myPkiCA
Validity
Not Before: Jun 28 21:27:30 2022 GMT
Not After : Jul 28 21:27:30 2022 GMT
Subject: CN = my-device
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:ad:b0:63:1f:48:19:9e:c4:9d:91:d1:b0:b0:e5:
...
80:58:63:6d:ab:56:9f:90:4e:3f:dd:df:74:cf:86:
04:af
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature
X509v3 Extended Key Usage:
TLS Web Client Authentication
X509v3 Subject Key Identifier:
C7:C2:DC:3C:53:71:B8:42:15:D5:6C:4B:5C:03:C2:2A:C5:98:82:7E
X509v3 Authority Key Identifier:
keyid:6E:57:C7:FC:FE:50:09:75:FA:D9:89:13:CB:D2:CA:F2:28:EF:9B:F6
Signature Algorithm: ecdsa-with-SHA256
30:45:02:20:3c:d2:db:06:3c:d7:65:b7:22:fe:df:9e:11:5b:
...
eb:da:fc:f1:6a:bf:31:63:db:5a:16:02:70:0f:cf:c8:e2
-----BEGIN CERTIFICATE-----
MIICdTCCAhugAwIBAgIBMDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxlc3RFeGFt
...
354RWw+eLOpQSkTqXxzjmfw/kVOOAQIhANvRmyCQVb8zLPtqdOVRkuva/PFqvzFj
21oWAnAPz8ji
-----END CERTIFICATE-----
Tipp.
A PKI által biztosított tanúsítványfájlokhoz való hozzáférés nélküli teszteléshez tekintse meg a rövid élettartamú, nem éles eszköz identitástanúsítványának és titkos kulcsának létrehozásához szükséges demótanúsítványok létrehozását az eszközfunkciók teszteléséhez.
Konfigurációs példa az IoT Hubbal való üzembe helyezéshez:
[provisioning]
source = "manual"
# ...
[provisioning.authentication]
method = "x509"
identity_cert = "file:///var/aziot/device-id.pem"
identity_pk = "file:///var/aziot/device-id.key.pem"
Konfigurációs példa a DPS-sel való üzembe helyezéshez:
[provisioning]
source = "dps"
# ...
[provisioning.attestation]
method = "x509"
registration_id = "my-device"
identity_cert = "file:///var/aziot/device-id.pem"
identity_pk = "file:///var/aziot/device-id.key.pem"
A manuális tanúsítványkezeléssel járó többletterhelés kockázatos és hibalehetőséget jelenthet. Éles környezetben az IoT Edge használata ajánlott automatikus tanúsítványkezeléssel.
Peremhálózati hitelesítésszolgáltató kezelése
Az Edge CA két különböző móddal rendelkezik:
- A rövid útmutató az alapértelmezett viselkedés. A rövid útmutató tesztelésre használható, és nem alkalmas éles környezetben való használatra.
- Az éles üzemmódhoz saját forrást kell megadnia az Edge CA-tanúsítványhoz és a titkos kulcshoz.
Az Edge CA rövid útmutatója
Az első lépésekhez az IoT Edge alapértelmezés szerint automatikusan létrehoz egy Edge CA-tanúsítványt az első indításkor. Ez az önaláírt tanúsítvány csak fejlesztési és tesztelési forgatókönyvekhez készült, éles környezetben nem. Alapértelmezés szerint a tanúsítvány 90 nap után lejár. A lejárat konfigurálható. Ezt a viselkedést rövid útmutató Edge CA-nak nevezzük.
Az Edge ca rövid útmutatója lehetővé teszi edgeHub
, hogy az IoT Edge-modulok és más IoT Edge-modulok érvényes kiszolgálói tanúsítvánnyal rendelkezzenek, amikor az IoT Edge először konfiguráció nélkül van telepítve. A tanúsítványra azért van szükség edgeHub
, mert a moduloknak vagy az alsóbb rétegbeli eszközöknek biztonságos kommunikációs csatornákat kell létrehozniuk. Az Edge ca rövid útmutatója nélkül az első lépések jelentősen nehezebbek lennének, mert egy érvényes kiszolgálói tanúsítványt kell megadnia egy PKI-szolgáltatótól vagy olyan eszközökkel, mint a openssl
.
Fontos
Soha ne használja az Edge ca rövid útmutatóját éles környezetben, mert a helyileg létrehozott tanúsítvány nincs PKI-hez csatlakoztatva.
A tanúsítványalapú identitások biztonsága egy jól működő PKI-ből (az infrastruktúrából) ered, amelyben a tanúsítvány (egy dokumentum) csak egy összetevő. A jól működő PKI lehetővé teszi a biztonsági szabályzatok definícióját, alkalmazását, kezelését és érvényesítését, de nem kizárólagosan a tanúsítványok kiállítását, visszavonását és életciklus-kezelését.
Élettartam testreszabása az Edge ca rövid útmutatójához
Ha a tanúsítvány lejáratát az alapértelmezett 90 naptól eltérő értékre szeretné konfigurálni, adja hozzá a napokra vonatkozó értéket a konfigurációs fájl Edge CA-tanúsítványának (rövid útmutató) szakaszához.
[edge_ca]
auto_generated_edge_ca_expiry_days = 180
Törölje a tartalom és /var/lib/aziot/keyd/keys
a mappák tartalmát a /var/lib/aziot/certd/certs
korábban létrehozott tanúsítványok eltávolításához, majd alkalmazza a konfigurációt.
Az Edge CA rövid útmutatója megújítása
Az IoT Edge alapértelmezés szerint automatikusan megújítja a rövid útmutató edge-hitelesítésszolgáltatói tanúsítványt a tanúsítvány élettartamának 80%-ában. Ha például egy tanúsítvány élettartama 90 nap, az IoT Edge a kiállítástól számított 72 napon belül automatikusan újragenerálja az Edge CA-tanúsítványt.
Az automatikus megújítási logika módosításához adja hozzá a következő beállításokat az Edge CA tanúsítvány szakaszához a következőbenconfig.toml
: Példa:
[edge_ca.auto_renew]
rotate_key = true
threshold = "70%"
retry = "2%"
Éles peremhálózati hitelesítésszolgáltató
Ha éles forgatókönyvbe lép, vagy átjáróeszközt szeretne létrehozni, a továbbiakban nem használhatja az Edge CA rövid útmutatót.
Az egyik lehetőség a saját tanúsítványok megadása és manuális kezelése. A kockázatos és hibalehetőséget jelentő manuális tanúsítványkezelési folyamat elkerülése érdekében azonban lehetőség szerint használjon EST-kiszolgálót.
Figyelemfelhívás
Az Edge CA-tanúsítvány köznapi neve (CN) nem egyezik az eszköz config.toml konfigurációs fájljában vagy az IoT Hubban regisztrált eszközazonosítóban definiált eszköz gazdagépnév paraméterével.
Az Edge CA megújításának megtervezve
Amikor az Edge CA-tanúsítvány megújul, a modulkiszolgáló-tanúsítványokhoz hasonlóan kiadott összes tanúsítvány újra létre lesz hozva. Ha új kiszolgálótanúsítványokat szeretne adni a moduloknak, az IoT Edge újraindítja az összes modult, amikor az Edge CA-tanúsítvány megújul.
A modul újraindításának lehetséges negatív hatásainak minimalizálása érdekében tervezze meg az Edge CA-tanúsítvány egy adott időpontban történő megújítását (például threshold = "10d"
), és értesítse a megoldás függőit az állásidőről.
Példa: Edge CA-tanúsítványfájlok használata a PKI-szolgáltatótól
Kérje le a következő fájlokat a PKI-szolgáltatótól:
- A PKI legfelső szintű hitelesítésszolgáltatói tanúsítványa
- Kiállító/hitelesítésszolgáltatói tanúsítvány és a hozzá tartozó titkos kulcs
Ahhoz, hogy a kiállító hitelesítésszolgáltatói tanúsítvány edge hitelesítésszolgáltatóvá váljon, a következő bővítményekkel kell rendelkeznie:
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
basicConstraints = critical, CA:TRUE, pathlen:0
keyUsage = critical, digitalSignature, keyCertSign
Példa az eredmény edge hitelesítésszolgáltatói tanúsítványára:
openssl x509 -in my-edge-ca-cert.pem -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 4098 (0x1002)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN = myPkiCA
Validity
Not Before: Aug 27 00:00:50 2022 GMT
Not After : Sep 26 00:00:50 2022 GMT
Subject: CN = my-edge-ca.ca
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (4096 bit)
Modulus:
00:e1:cb:9c:c0:41:d2:ee:5d:8b:92:f9:4e:0d:3e:
...
25:f5:58:1e:8c:66:ab:d1:56:78:a5:9c:96:eb:01:
e4:e3:49
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
FD:64:48:BB:41:CE:C1:8A:8A:50:9B:2B:2D:6E:1D:E5:3F:86:7D:3E
X509v3 Authority Key Identifier:
keyid:9F:E6:D3:26:EE:2F:D7:84:09:63:84:C8:93:72:D5:13:06:8E:7F:D1
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Key Usage: critical
Digital Signature, Certificate Sign
Signature Algorithm: sha256WithRSAEncryption
20:c9:34:41:a3:a4:8e:7c:9c:6e:17:f5:a6:6f:e5:fc:6e:59:
...
7c:20:5d:e5:51:85:4c:4d:f7:f8:01:84:87:27:e3:76:65:47:
9e:6a:c3:2e:1a:f0:dc:9d
-----BEGIN CERTIFICATE-----
MIICdTCCAhugAwIBAgIBMDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxlc3RFeGFt
...
354RWw+eLOpQSkTqXxzjmfw/kVOOAQIhANvRmyCQVb8zLPtqdOVRkuva/PFqvzFj
21oWAnAPz8ji
-----END CERTIFICATE-----
Miután megkapta a legújabb fájlokat, frissítse a megbízhatósági csomagot:
trust_bundle_cert = "file:///var/aziot/root-ca.pem"
Ezután konfigurálja az IoT Edge-et a tanúsítvány és a titkos kulcsfájlok használatára:
[edge_ca]
cert = "file:///var/aziot/my-edge-ca-cert.pem"
pk = "file:///var/aziot/my-edge-ca-private-key.key.pem"
Ha korábban már használt más tanúsítványokat az IoT Edge-hez az eszközön, törölje a benne lévő /var/lib/aziot/certd/certs
fájlokat és a tanúsítványokkal társított titkos kulcsokat (nem az összes kulcsot) a fájlban /var/lib/aziot/keyd/keys
. Az IoT Edge újra létrehozza őket a megadott új hitelesítésszolgáltatói tanúsítvánnyal.
Ehhez a módszerhez manuálisan kell frissítenie a fájlokat a tanúsítvány lejáratakor. A probléma elkerülése érdekében fontolja meg az EST használatát az automatikus felügyelethez.
Automatikus tanúsítványkezelés az EST-kiszolgálóval
Az IoT Edge képes a biztonságos átviteli (EST) kiszolgálón keresztüli regisztrációra az automatikus tanúsítványkiállítás és -megújítás érdekében. Az EST használata éles környezetben ajánlott, mivel felváltja a manuális tanúsítványkezelés szükségességét, ami kockázatos és hibalehetőséget jelenthet. Globálisan konfigurálható, és felül lehet bírálni minden tanúsítványtípushoz.
Ebben a forgatókönyvben a rendszerindítási tanúsítvány és a titkos kulcs várhatóan hosszú élettartamú lesz, és a gyártás során valószínűleg telepítve lesz az eszközön. Az IoT Edge a rendszerindítási hitelesítő adatokkal hitelesíti az EST-kiszolgálót a kezdeti kéréshez egy identitástanúsítvány kiállításához a későbbi kérésekhez, valamint a DPS-hez vagy az IoT Hubhoz való hitelesítéshez.
Hozzáférés kérése egy EST-kiszolgálóhoz. Ha nem rendelkezik EST-kiszolgálóval, a tesztelés megkezdéséhez használja az alábbi lehetőségek egyikét:
Hozzon létre egy teszt EST-kiszolgálót a következő oktatóanyag lépéseivel : Regisztráció konfigurálása biztonságos átviteli kiszolgálón keresztül az Azure IoT Edge-hez.
A Microsoft a GlobalSign szolgáltatással együttműködve demófiókot biztosít.
Az IoT Edge eszközkonfigurációs fájljában
config.toml
konfigurálja egy megbízható főtanúsítvány elérési útját, amelyet az IoT Edge az EST-kiszolgáló TLS-tanúsítványának ellenőrzésére használ. Ez a lépés nem kötelező, ha az EST-kiszolgáló nyilvánosan megbízható legfelső szintű TLS-tanúsítvánnyal rendelkezik.[cert_issuance.est] trusted_certs = [ "file:///var/aziot/root-ca.pem", ]
Adja meg az EST-kiszolgáló alapértelmezett URL-címét. Adja
config.toml
hozzá a következő szakaszt az EST-kiszolgáló URL-címével:[cert_issuance.est.urls] default = "https://example.org/.well-known/est"
Az EST-tanúsítvány hitelesítéshez való konfigurálásához adja hozzá a következő szakaszt a tanúsítvány és a titkos kulcs elérési útjával:
[cert_issuance.est.auth] bootstrap_identity_cert = "file:///var/aziot/my-est-id-bootstrap-cert.pem" bootstrap_identity_pk = "file:///var/aziot/my-est-id-bootstrap-pk.key.pem" [cert_issuance.est.identity_auto_renew] rotate_key = true threshold = "80%" retry = "4%"
Alkalmazza a konfiguráció módosításait.
sudo iotedge config apply
A beállításokat [cert_issuance.est.identity_auto_renew]
a következő szakaszban találja.
Felhasználónév és jelszó hitelesítése
Ha az EST-kiszolgáló hitelesítése nem lehetséges tanúsítvány használatával, használhat megosztott titkos kulcsot vagy felhasználónevet és jelszót.
[cert_issuance.est.auth]
username = "username"
password = "password"
Automatikus megújítási paraméterek konfigurálása
A tanúsítványfájlok manuális kezelése helyett az IoT Edge beépített képes a tanúsítványok lekérésére és megújítására a lejárat előtt. A tanúsítványmegújításhoz olyan kiállítási módszer szükséges, amelyet az IoT Edge kezelni tud. A biztonságos átviteli (EST) kiszolgálón keresztüli regisztráció egyetlen kiállítási módszer, de az IoT Edge alapértelmezés szerint automatikusan megújíthatja a rövid útmutató hitelesítésszolgáltatóját is. A tanúsítványmegújítás tanúsítványtípusonként van konfigurálva.
Ebben
config.toml
a szakaszban keresse meg a konfigurálni kívánt tanúsítvány típusának megfelelő szakaszt. Megkeresheti például a kulcsszótauto_renew
.A konfigurációs sablon példáját használva konfigurálja az eszközidentitás-tanúsítványt, az Edge CA-t vagy az EST-identitástanúsítványokat. A példaminta a következő:
[REPLACE_WITH_CERT_TYPE] # ... method = "est" # ... [REPLACE_WITH_CERT_TYPE.auto_renew] rotate_key = true threshold = "80%" retry = "4%"
A konfiguráció alkalmazása
sudo iotege config apply
Az alábbi táblázat felsorolja az egyes beállításokat auto_renew
:
Paraméter | Leírás |
---|---|
rotate_key |
Azt szabályozza, hogy a titkos kulcsot el kell-e forgatni, amikor az IoT Edge megújítja a tanúsítványt. |
threshold |
Beállítja, hogy az IoT Edge mikor kezdje el megújítani a tanúsítványt. A következő módon adható meg: - Százalék: egész szám között 0 és 100 utána % . A megújítás a tanúsítvány élettartamához képest kezdődik. Ha például egy 100 napig érvényes tanúsítványra van beállítva 80% , a megújítás a lejárata előtt 20 nappal kezdődik. - Abszolút idő: egész szám, amelyet ( min perc) vagy day (nap) követ. A megújítás a tanúsítvány lejárati idejéhez képest kezdődik. Ha például négy napra vagy 10min 10 percre van beállítva4day , a tanúsítvány a lejárat előtti időpontban kezd megújulni. A véletlen helytelen konfiguráció elkerülése érdekében, ha a threshold tanúsítvány élettartama nagyobb a tanúsítvány élettartamánál, javasoljuk, hogy lehetőség szerint használja a százalékos értéket . |
retry |
azt határozza meg, hogy milyen gyakran kell újrapróbálkozott megújítást sikertelenül. Ehhez hasonlóan threshold százalékként vagy abszolút időként is megadható ugyanazzal a formátummal. |
Példa: eszközidentitás-tanúsítvány automatikus megújítása az EST használatával
Az EST és az IoT Edge automatikus eszközidentitás-tanúsítvány kiállításához és megújításához, amely éles környezetben ajánlott, az IoT Edge-nek a DPS CA-alapú regisztrációs csoport részeként kell kiépítenie. Példa:
## DPS provisioning with X.509 certificate
[provisioning]
source = "dps"
# ...
[provisioning.attestation]
method = "x509"
registration_id = "my-device"
[provisioning.attestation.identity_cert]
method = "est"
common_name = "my-device"
[provisioning.attestation.identity_cert.auto_renew]
rotate_key = true
threshold = "80%"
retry = "4%"
Az Edge CA automatikus megújítását engedélyezni kell, ha a kiállítási módszer EST értékre van állítva. Az Edge CA lejáratát el kell kerülni, mivel az számos IoT Edge-funkciót megszakít. Ha egy helyzethez teljes hozzáférésre van szükség az Edge CA-tanúsítvány életciklusa felett, használja inkább a manuális Edge CA felügyeleti módszert .
Ne használja az EST-t vagy auto_renew
más kiépítési módszereket, beleértve a manuális X.509-kiépítést az IoT Hubbal és a DPS-vel egyéni regisztrációval. Az IoT Edge nem tudja frissíteni a tanúsítvány ujjlenyomatait az Azure-ban egy tanúsítvány megújításakor, ami megakadályozza az IoT Edge újracsatlakozását.
Példa: automatikus Edge CA-felügyelet az EST használatával
Használja az EST automatikus edge-hitelesítésszolgáltató kiállítását és megújítását éles környezetben. Az EST-kiszolgáló konfigurálása után használhatja a globális beállítást, vagy felülbírálhatja az alábbi példához hasonlóan:
[edge_ca]
method = "est"
common_name = "my-edge-CA"
url = "https://ca.example.org/.well-known/est"
bootstrap_identity_cert = "file:///var/aziot/my-est-id-bootstrap-cert.pem"
bootstrap_identity_pk = "file:///var/aziot/my-est-id-bootstrap-pk.key.pem"
[edge_ca.auto_renew]
rotate_key = true
threshold = "90%"
retry = "2%"
Modulkiszolgáló-tanúsítványok
Az Edge Démon modulkiszolgálókat és identitástanúsítványokat ad ki az Edge-modulok számára. Az Edge-modulok feladata továbbra is az identitás- és kiszolgálótanúsítványok szükség szerinti megújítása.
Megújítás
A kiszolgálótanúsítványok kibocsáthatók az Edge CA-tanúsítványból. A kiállítási módszertől függetlenül ezeket a tanúsítványokat a modulnak meg kell újítania. Ha egyéni modult fejleszt, implementálnia kell a megújítási logikát a modulban.
Az edgeHub-modul támogatja a tanúsítványmegújítási funkciót. Az edgeHub-modulkiszolgáló tanúsítványmegújítását a következő környezeti változók használatával konfigurálhatja:
- ServerCertificateRenewAfterInMs: Ezredmásodpercben adja meg az időtartamot, amikor az edgeHub-kiszolgáló tanúsítványa megújul a tanúsítvány lejárati idejétől függetlenül.
- MaxCheckCertExpiryInMs: Ezredmásodpercben állítja be az időtartamot, amikor az edgeHub szolgáltatás ellenőrzi az edgeHub-kiszolgáló tanúsítványának lejáratát. Ha a változó be van állítva, az ellenőrzés a tanúsítvány lejárati idejétől függetlenül történik.
További információ a környezeti változókról: EdgeHub és EdgeAgent környezeti változók.
Változások az 1.2-ben és újabb verziókban
- Az eszköz hitelesítésszolgáltatói tanúsítványa edge-hitelesítésszolgáltatói tanúsítványként lett átnevezve.
- A számítási feladat hitelesítésszolgáltatói tanúsítványa elavult. Az IoT Edge biztonsági kezelője most közvetlenül az Edge CA-tanúsítványból hozza létre az IoT Edge hub-kiszolgáló
edgeHub
tanúsítványát, a köztes számítási feladat hitelesítésszolgáltatói tanúsítványa nélkül. - Az alapértelmezett konfigurációs fájlnak új neve és helye van, alapértelmezés szerint.
/etc/iotedge/config.yaml
/etc/aziot/config.toml
Aiotedge config import
parancs segítségével áttelepítheti a konfigurációs adatokat a régi helyről és szintaxisról az újra.
Következő lépések
A tanúsítványok IoT Edge-eszközön való telepítése szükséges lépés a megoldás éles környezetben való üzembe helyezése előtt. További információ az IoT Edge-megoldás éles környezetben való üzembe helyezésének előkészítéséről.