IoT Edge-tanúsítványok kezelése

A következőkre vonatkozik:IoT Edge 1.5 pipa IoT Edge 1.5 IoT Edge 1.4 pipa IoT Edge 1.4

Fontos

Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. 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 és PRIVATE 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 .pfxPKI-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.

  1. Kérje le a legfelső szintű hitelesítésszolgáltató tanúsítványát egy PKI-szolgáltatótól.

  2. Ellenőrizze, hogy a tanúsítvány megfelel-e a formátumkövetelményeknek.

  3. 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
    
  4. Az IoT Edge konfigurációs fájljában config.tomlkeresse 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.

  5. Á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"
    
  6. 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:

  1. Ellenőrizze, hogy a tanúsítvány és a titkos kulcsfájlok megfelelnek-e a formátumkövetelményeknek.

  2. 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
    
  3. Adjon tulajdonjogot az IoT Edge tanúsítványszolgáltatásának aziotcs és kulcsszolgáltatásának aziotks 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
    
  4. Ebben config.tomla szakaszban keresse meg a konfigurálni kívánt tanúsítvány típusának megfelelő szakaszt. Megkeresheti például a kulcsszót cert.

  5. 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"
    
  6. 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.

  1. 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:

  2. Az IoT Edge eszközkonfigurációs fájljában config.tomlkonfigurá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",
    ]
    
  3. Adja meg az EST-kiszolgáló alapértelmezett URL-címét. Adja config.tomlhozzá a következő szakaszt az EST-kiszolgáló URL-címével:

    [cert_issuance.est.urls]
    default = "https://example.org/.well-known/est"
    
  4. 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%"
    
  5. 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.

  1. Ebben config.tomla szakaszban keresse meg a konfigurálni kívánt tanúsítvány típusának megfelelő szakaszt. Megkeresheti például a kulcsszót auto_renew.

  2. 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%"
    
  3. 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 thresholdszá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 A iotedge 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.