Správa certifikátů IoT Edge
Platí pro: IoT Edge 1.5 IoT Edge 1.4
Důležité
Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.
Všechna zařízení IoT Edge k vytváření zabezpečených připojení mezi modulem runtime a všemi moduly spuštěnými na zařízení využívají certifikáty. Zařízení IoT Edge, která fungují jako brány, používají stejné certifikáty také pro připojení k podřízeným zařízením.
Poznámka:
Termín kořenová certifikační autorita použitá v tomto článku odkazuje na certifikát nejvyšší autority v řetězu certifikátů vašeho řešení IoT. Nemusíte používat kořen certifikátu syndikované certifikační autority ani kořen certifikační autority vaší organizace. Často se jedná o certifikát zprostředkující certifikační autority.
Požadavky
Měli byste znát koncepty v tématu Vysvětlení, jak Azure IoT Edge používá certifikáty, zejména jak IoT Edge používá certifikáty.
Zařízení IoT Edge.
Pokud nemáte nastavené zařízení IoT Edge, můžete ho vytvořit ve virtuálním počítači Azure. Postupujte podle kroků v jednom z těchto článků rychlého startu k vytvoření virtuálního zařízení s Linuxem nebo vytvoření virtuálního zařízení s Windows.
Možnost upravit konfigurační soubor
config.toml
IoT Edge podle šablony konfiguraceconfig.toml
Pokud vaše šablona není založená na šabloně, otevřete ji a pomocí komentářů přidejte oddíly konfigurace za strukturou šablony.Pokud máte novou instalaci IoT Edge, která nebyla nakonfigurována, zkopírujte šablonu, aby se inicializovala konfigurace. Tento příkaz nepoužívejte, pokud máte existující konfiguraci. Soubor přepíše.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Požadavky na formát
Tip
- Certifikát lze zakódovat do binární reprezentace s názvem DER (kódování DER) nebo textové vyjádření s názvem PEM (Privacy Enhanced Mail). Formát PEM má
-----BEGIN CERTIFICATE-----
záhlaví následované kódem DER s kódováním base64 následované zápatím-----END CERTIFICATE-----
. - Podobně jako certifikát může být privátní klíč kódován v binárním kódu DER nebo textové reprezentaci PEM.
- Vzhledem k tomu, že PEM je delineován, je také možné vytvořit PEM, který kombinuje jak sekvenčně, tak
CERTIFICATE
PRIVATE KEY
i ve stejném souboru. - Nakonec je možné certifikát a privátní klíč zakódovat do binární reprezentace s názvem PKCS#12, která je zašifrovaná volitelným heslem.
Přípony souborů jsou libovolné a potřebujete spustit file
příkaz nebo zobrazit soubor, abyste ověřili typ. Obecně platí, že soubory používají následující konvence rozšíření:
.cer
je certifikát ve formuláři DER nebo PEM..pem
je buď certifikát, privátní klíč, nebo obojí ve formuláři PEM..pfx
je soubor PKCS#12.
IoT Edge vyžaduje, aby certifikát a privátní klíč byly:
- Formát PEM
- Samostatné soubory
- Ve většině případů s úplným řetězem
Pokud získáte .pfx
soubor od svého poskytovatele PKI, pravděpodobně se certifikát a privátní klíč kódují společně v jednom souboru. Pomocí příkazu ověřte, že se jedná o typ file
souboru PKCS#12. Soubor PKCS#12 .pfx
můžete převést na soubory PEM pomocí příkazu openssl pkcs12.
Pokud váš poskytovatel PKI poskytuje .cer
soubor, může obsahovat stejný certifikát jako .pfx
certifikát nebo může být certifikát vydávající (kořenový) zprostředkovatele PKI. Pokud to chcete ověřit, zkontrolujte soubor pomocí openssl x509
příkazu. Pokud se jedná o vydávající certifikát:
- Pokud je ve formátu DER (binární), převeďte ho na PEM pomocí
openssl x509 -in cert.cer -out cert.pem
. - Jako sadu důvěryhodnosti použijte soubor PEM. Další informace o sadě důvěryhodnosti najdete v další části.
Důležité
Vaše infrastruktura PKI by měla podporovat klíče RSA-2048 a klíče EC P-256. Například servery EST by měly podporovat tyto typy klíčů. Můžete použít jiné typy klíčů, ale testujeme pouze rsA-2048bitové klíče a klíče EC P-256.
Požadavky na oprávnění
Následující tabulka uvádí oprávnění k souborům a adresářům vyžadovaná pro certifikáty IoT Edge. Upřednostňovaný adresář pro certifikáty je /var/aziot/certs/
a /var/aziot/secrets/
pro klíče.
Soubor nebo adresář | Oprávnění | Vlastník |
---|---|---|
/var/aziot/certs/ Adresář certifikátů |
drwxr-xr-x (755) | aziotcs |
Soubory certifikátů v /var/aziot/certs/ |
-wr-r--r-- (644) | aziotcs |
/var/aziot/secrets/ adresář klíčů |
drwx------ (700) | aziotks |
Klíčové soubory v /var/aziot/secrets/ |
-wr------- (600) | aziotks |
Pokud chcete vytvořit adresáře, nastavte oprávnění a nastavte vlastníka, spusťte následující příkazy:
# 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
Výstup seznamu se správným vlastnictvím a oprávněním je podobný následujícímu výstupu:
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
Správa důvěryhodné kořenové certifikační autority (sada důvěryhodných certifikátů)
Použití certifikátu certifikační autority podepsané svým držitelem (CA) jako kořen vztahu důvěryhodnosti se službou IoT Edge a modulů se označuje jako sada důvěryhodných certifikátů. Sada důvěryhodnosti je k dispozici pro IoT Edge a moduly pro komunikaci se servery. Pokud chcete nakonfigurovat sadu důvěryhodnosti, zadejte cestu k souboru v konfiguračním souboru IoT Edge.
Získejte certifikát kořenové certifikační autority od zprostředkovatele PKI.
Zkontrolujte, jestli certifikát splňuje požadavky na formát.
Zkopírujte soubor PEM a udělte certifikační službě IoT Edge přístup. Například s adresářem
/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
V konfiguračním souboru
config.toml
IoT Edge vyhledejte část Certifikát svazku důvěryhodnosti. Pokud oddíl chybí, můžete ho zkopírovat ze souboru šablony konfigurace.Tip
Pokud konfigurační soubor na vašem zařízení ještě neexistuje, vytvořte
/etc/aziot/config.toml.edge.template
ho pomocí šablony.trust_bundle_cert
Nastavte klíč na umístění souboru certifikátu.trust_bundle_cert = "file:///var/aziot/certs/root-ca.pem"
Použijte konfiguraci.
sudo iotedge config apply
Instalace kořenové certifikační autority do úložiště certifikátů operačního systému
Instalace certifikátu do souboru sady důvěryhodných certifikátů zpřístupňuje moduly kontejnerů, ale ne k hostování modulů, jako je Azure Device Update nebo Defender. Pokud používáte komponenty na úrovni hostitele nebo narazíte na jiné problémy s protokolem TLS, nainstalujte také kořenový certifikát certifikační autority do úložiště certifikátů operačního systému:
sudo cp /var/aziot/certs/my-root-ca.pem /usr/local/share/ca-certificates/my-root-ca.pem.crt
sudo update-ca-certificates
Import souborů certifikátu a privátního klíče
IoT Edge může použít existující certifikáty a soubory privátního klíče k ověření nebo ověření v Azure, vydávání nových certifikátů serveru modulů a ověřování na serverech EST. Instalace:
Zkontrolujte, jestli soubory certifikátu a privátního klíče splňují požadavky na formát.
Zkopírujte soubor PEM do zařízení IoT Edge, ke kterým mají moduly IoT Edge přístup. Například adresář
/var/aziot/
.# 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
Udělte vlastnictví certifikační službě
aziotcs
IoT Edge a služběaziotks
klíčů k certifikátu a privátnímu klíči v uvedeném pořadí.# 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
V
config.toml
části vyhledejte odpovídající část pro typ certifikátu, který chcete nakonfigurovat. Můžete například vyhledat klíčové slovocert
.Pomocí příkladu ze šablony konfigurace nakonfigurujte certifikát identity zařízení nebo soubory certifikační autority Edge. Vzor příkladu je:
cert = "file:///var/aziot/certs/my-cert.pem" pk = "file:///var/aziot/secrets/my-private-key.pem"
Použití konfigurace
sudo iotedge config apply
Pokud chcete zabránit chybám při vypršení platnosti certifikátů, nezapomeňte soubory a konfiguraci aktualizovat ručně před vypršením platnosti certifikátu.
Příklad: Použití souborů certifikátů identity zařízení od zprostředkovatele PKI
Požádejte o klientský certifikát TLS a privátní klíč od zprostředkovatele PKI.
Požadavky na certifikát identity zařízení:
- Standardní rozšíření klientských certifikátů: extendedKeyUsage = clientAuth keyUsage = critical, digitalSignature
- Identifikátory klíčů, které pomáhají rozlišovat mezi vydáváním certifikačních autorit se stejným cn pro rotaci certifikátů certifikační autority.
- subjectKeyIdentifier = hash
- authorityKeyIdentifier = keyid:always,issuer:always
Ujistěte se, že běžný název (CN) odpovídá ID zařízení IoT Edge zaregistrované ve službě IoT Hub nebo ID registrace ve službě DPS. Například v následujícím certifikátu identity zařízení je důležité pole, Subject: CN = my-device
které se musí shodovat.
Příklad certifikátu identity zařízení:
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-----
Tip
Pokud chcete testovat bez přístupu k souborům certifikátů poskytovaných pkI, přečtěte si téma Vytvoření ukázkových certifikátů pro testování funkcí zařízení za účelem vygenerování krátkodobého neprodukčního certifikátu identity zařízení a privátního klíče.
Příklad konfigurace při zřizování ve službě IoT Hub:
[provisioning]
source = "manual"
# ...
[provisioning.authentication]
method = "x509"
identity_cert = "file:///var/aziot/device-id.pem"
identity_pk = "file:///var/aziot/device-id.key.pem"
Příklad konfigurace při zřizování pomocí DPS:
[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"
Režie při ruční správě certifikátů může být riziková a náchylná k chybám. V produkčním prostředí se doporučuje používat IoT Edge s automatickou správou certifikátů.
Správa certifikační autority Edge
Certifikační autorita Edge má dva různé režimy:
- Rychlý start je výchozí chování. Rychlý start je určený pro testování a není vhodný pro produkční prostředí.
- Produkční režim vyžaduje, abyste zadali vlastní zdroj pro certifikát certifikační autority Edge a privátní klíč.
Rychlý start certifikační autority Edge
Aby vám pomohl začít, IoT Edge automaticky vygeneruje certifikát certifikační autority Edge při prvním spuštění ve výchozím nastavení. Tento certifikát podepsaný svým držitelem je určený jenom pro scénáře vývoje a testování, nikoli pro produkční prostředí. Ve výchozím nastavení platnost certifikátu vyprší po 90 dnech. Můžete nakonfigurovat vypršení platnosti. Toto chování se označuje jako certifikační autorita Edge pro rychlý start.
Certifikační autorita Edge pro Rychlý start umožňuje edgeHub
a další moduly IoT Edge mít platný certifikát serveru při první instalaci IoT Edge bez konfigurace. Certifikát je nutný, edgeHub
protože moduly nebo podřízená zařízení potřebují vytvořit zabezpečené komunikační kanály. Bez certifikační autority Edge pro rychlý start by bylo zahájení výrazně obtížnější, protože byste potřebovali poskytnout platný certifikát serveru od poskytovatele PKI nebo pomocí nástrojů, jako je openssl
.
Důležité
Nikdy nepoužívejte certifikační autoritu Edge pro rychlý start pro produkční prostředí, protože místně vygenerovaný certifikát není připojený k infrastruktuře veřejných klíčů.
Zabezpečení identity založené na certifikátech je odvozeno z dobře fungující infrastruktury veřejných klíčů (infrastruktury), ve které je certifikát (dokument) pouze součástí. Dobře provozovaný infrastruktura veřejných klíčů umožňuje definovat, aplikace, správu a vynucování zásad zabezpečení, aby zahrnovaly nejen vystavování, odvolávání certifikátů a správu životního cyklu.
Přizpůsobení životnosti pro certifikační autoritu Edge pro rychlý start
Pokud chcete nakonfigurovat vypršení platnosti certifikátu na něco jiného, než je výchozí 90 dní, přidejte hodnotu ve dnech do oddílu Certifikát certifikační autority Edge (Rychlý start) konfiguračního souboru.
[edge_ca]
auto_generated_edge_ca_expiry_days = 180
Odstraňte obsah /var/lib/aziot/certd/certs
a složky, /var/lib/aziot/keyd/keys
abyste odebrali všechny dříve vygenerované certifikáty a pak konfiguraci použili.
Prodloužení platnosti certifikační autority pro Edge pro rychlý start
IoT Edge ve výchozím nastavení automaticky prodlouží certifikát certifikační autority Edge pro rychlý start při 80 % doby života certifikátu. Pokud má například certifikát 90denní životnost, IoT Edge automaticky vygeneruje certifikát certifikační autority Edge za 72 dnů od vystavení.
Pokud chcete změnit logiku automatického prodlužování platnosti, přidejte následující nastavení do části Certifikát certifikační autority Edge v části config.toml
. Příklad:
[edge_ca.auto_renew]
rotate_key = true
threshold = "70%"
retry = "2%"
Certifikační autorita Edge v produkčním prostředí
Jakmile přejdete do produkčního scénáře nebo chcete vytvořit zařízení brány, už nemůžete používat certifikační autoritu Edge pro rychlý start.
Jednou z možností je zadat vlastní certifikáty a spravovat je ručně. Pokud se ale chcete vyhnout rizikovému a náchylnému ručnímu procesu správy certifikátů, použijte server EST, kdykoli je to možné.
Upozornění
Běžný název certifikátu certifikační autority Edge nemůže odpovídat parametru názvu hostitele zařízení definovanému v konfiguračním souboru zařízení config.toml nebo ID zařízení zaregistrované ve službě IoT Hub.
Plánování prodloužení platnosti certifikační autority Edge
Když se certifikát certifikační autority Edge prodlouží, všechny certifikáty, které vydala, jako jsou certifikáty serveru modulu, se znovu vygenerují. Aby moduly získaly nové certifikáty serveru, IoT Edge restartuje všechny moduly, když se certifikát certifikační autority Edge prodlouží.
Pokud chcete minimalizovat potenciální negativní účinky restartování modulu, naplánujte obnovení certifikátu certifikační autority Edge v konkrétní době (například threshold = "10d"
) a upozorněte závislé na řešení výpadku.
Příklad: Použití souborů certifikátů certifikační autority Edge od zprostředkovatele PKI
Požádejte poskytovatele infrastruktury veřejných klíčů o následující soubory:
- Kořenový certifikát certifikační autority PKI
- Vydávající certifikát nebo certifikát certifikační autority a přidružený privátní klíč
Aby se vydávající certifikát certifikační autority stal certifikační autoritou Edge, musí mít tato rozšíření:
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
basicConstraints = critical, CA:TRUE, pathlen:0
keyUsage = critical, digitalSignature, keyCertSign
Příklad výsledného certifikátu certifikační autority Edge:
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-----
Jakmile obdržíte nejnovější soubory, aktualizujte sadu důvěryhodnosti:
trust_bundle_cert = "file:///var/aziot/root-ca.pem"
Potom nakonfigurujte IoT Edge tak, aby používal certifikát a soubory privátního klíče:
[edge_ca]
cert = "file:///var/aziot/my-edge-ca-cert.pem"
pk = "file:///var/aziot/my-edge-ca-private-key.key.pem"
Pokud jste dříve na zařízení použili nějaké jiné certifikáty pro IoT Edge, odstraňte soubory v /var/lib/aziot/certd/certs
a privátní klíče přidružené k certifikátům (ne všechny klíče) v /var/lib/aziot/keyd/keys
. IoT Edge je znovu vytvoří s novým certifikátem certifikační autority, který jste zadali.
Tento přístup vyžaduje, abyste soubory při vypršení platnosti certifikátu aktualizovali ručně. Pokud se chcete tomuto problému vyhnout, zvažte použití EST pro automatickou správu.
Automatická správa certifikátů pomocí serveru EST
IoT Edge umožňuje rozhraní se serverem EST (Secure Transport) pro automatické vystavování a prodlužování platnosti certifikátů. Použití EST se doporučuje pro produkční prostředí, protože nahrazuje potřebu ruční správy certifikátů, což může být rizikové a náchylné k chybám. Dá se nakonfigurovat globálně a přepsat pro každý typ certifikátu.
V tomto scénáři se očekává, že certifikát bootstrap a privátní klíč budou dlouhodobé a potenciálně nainstalované na zařízení během výroby. IoT Edge používá přihlašovací údaje bootstrap k ověření na serveru EST pro počáteční požadavek k vydání certifikátu identity pro následné požadavky a k ověřování pro DPS nebo IoT Hub.
Získejte přístup k serveru EST. Pokud server EST nemáte, spusťte testování pomocí jedné z následujících možností:
Vytvořte testovací server EST pomocí kroků v kurzu: Konfigurace registrace přes zabezpečený transportní server pro Azure IoT Edge.
Microsoft spolupracuje s GlobalSignem a poskytuje ukázkový účet.
V konfiguračním souboru
config.toml
zařízení IoT Edge nakonfigurujte cestu k důvěryhodnému kořenovému certifikátu, který IoT Edge používá k ověření certifikátu TLS serveru EST. Tento krok je volitelný, pokud má server EST veřejně důvěryhodný kořenový certifikát TLS.[cert_issuance.est] trusted_certs = [ "file:///var/aziot/root-ca.pem", ]
Zadejte výchozí adresu URL serveru EST. Do
config.toml
pole přidejte následující část s adresou URL serveru EST:[cert_issuance.est.urls] default = "https://example.org/.well-known/est"
Pokud chcete nakonfigurovat certifikát EST pro ověřování, přidejte následující část s cestou k certifikátu a privátnímu klíči:
[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%"
Použijte změny konfigurace.
sudo iotedge config apply
Nastavení [cert_issuance.est.identity_auto_renew]
jsou popsána v další části.
Ověřování pomocí uživatelského jména a hesla
Pokud ověřování na serveru EST pomocí certifikátu není možné, můžete místo toho použít sdílený tajný klíč nebo uživatelské jméno a heslo.
[cert_issuance.est.auth]
username = "username"
password = "password"
Konfigurace parametrů automatického prodlužování
Místo ruční správy souborů certifikátů má IoT Edge integrovanou možnost získat a obnovit certifikáty před vypršením platnosti. Obnovení certifikátu vyžaduje metodu vystavování, kterou může IoT Edge spravovat. Registrace přes server EST (Secure Transport) je jednou metodou vystavování, ale IoT Edge může automaticky obnovit certifikační autoritu pro rychlý start ve výchozím nastavení. Prodlužování platnosti certifikátu se konfiguruje podle typu certifikátu.
V
config.toml
části vyhledejte odpovídající část pro typ certifikátu, který chcete nakonfigurovat. Můžete například vyhledat klíčové slovoauto_renew
.Pomocí příkladu ze šablony konfigurace nakonfigurujte certifikát identity zařízení, certifikační autoritu Edge nebo certifikáty identit EST. Vzor příkladu je:
[REPLACE_WITH_CERT_TYPE] # ... method = "est" # ... [REPLACE_WITH_CERT_TYPE.auto_renew] rotate_key = true threshold = "80%" retry = "4%"
Použití konfigurace
sudo iotege config apply
Následující tabulka uvádí, co každá možnost auto_renew
dělá:
Parametr | Popis |
---|---|
rotate_key |
Určuje, jestli se má privátní klíč otočit, když IoT Edge obnoví certifikát. |
threshold |
Nastaví, kdy má IoT Edge začít obnovovat certifikát. Dá se zadat takto: - Procento: celé číslo mezi 0 a 100 následované % . Obnovení začíná vzhledem k době životnosti certifikátu. Pokud je například nastavená hodnota 80% , certifikát, který je platný po dobu 100 dnů, začíná prodlužování platnosti 20 dní před vypršením jeho platnosti. - Absolutní čas: celé číslo následované min (minuty) nebo day (dny). Prodloužení začíná vzhledem k době vypršení platnosti certifikátu. Pokud je například nastavená na 4day čtyři dny nebo 10min 10 minut, certifikát se začne obnovovat v té době před vypršením platnosti. Abyste se vyhnuli neúmyslné chybné konfiguraci, kdy threshold je větší než životnost certifikátu, doporučujeme místo toho použít procento , kdykoli je to možné. |
retry |
určuje, jak často se má obnovení opakovat při selhání. Podobně lze threshold ho zadat jako procento nebo absolutní čas pomocí stejného formátu. |
Příklad: Automatické obnovení certifikátu identity zařízení pomocí EST
Pokud chcete používat EST a IoT Edge k automatickému vystavování a obnovování certifikátů identit zařízení, které se doporučuje pro produkční prostředí, musí IoT Edge zřídit jako součást skupiny registrací na základě certifikační autority DPS. Příklad:
## 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%"
Automatické prodlužování platnosti certifikační autority Edge musí být povolené, když je metoda vystavování nastavená na EST. Vypršení platnosti certifikační autority Edge se musí vyhnout, protože přeruší mnoho funkcí IoT Edge. Pokud situace vyžaduje úplnou kontrolu nad životním cyklem certifikátu certifikační autority Edge, použijte místo toho ruční metodu správy certifikační autority Edge.
Nepoužívejte EST ani auto_renew
s jinými metodami zřizování, včetně ručního zřizování X.509 se službou IoT Hub a DPS s jednotlivými registracemi. IoT Edge nemůže aktualizovat kryptografické otisky certifikátů v Azure při obnovení certifikátu, což brání opětovnému připojení ioT Edge.
Příklad: automatická správa certifikační autority Edge s využitím EST
V produkčním prostředí používejte automatické vystavování a obnovení certifikační autority EST. Po nakonfigurování serveru EST můžete použít globální nastavení nebo ho přepsat podobně jako v tomto příkladu:
[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%"
Certifikáty serveru modulů
Proces démon Edge vydává server modulů a certifikáty identit pro použití v modulech Edge. Moduly Edge zůstávají zodpovědností obnovit jejich identity a certifikáty serveru podle potřeby.
Prodloužení
Certifikáty serveru mohou být vystaveny z certifikátu certifikační autority Edge. Bez ohledu na metodu vystavování musí modul tyto certifikáty obnovit. Pokud vyvíjíte vlastní modul, musíte v modulu implementovat logiku obnovení.
Modul EdgeHub podporuje funkci prodloužení platnosti certifikátu. Obnovení certifikátu serveru modulu EdgeHub můžete nakonfigurovat pomocí následujících proměnných prostředí:
- ServerCertificateRenewAfterInMs: Nastaví dobu trvání v milisekundách při obnovení certifikátu serveru EdgeHub bez ohledu na dobu vypršení platnosti certifikátu.
- MaxCheckCertExpiryInMs: Nastaví dobu trvání v milisekundách, když služba EdgeHub kontroluje vypršení platnosti certifikátu serveru EdgeHub. Pokud je proměnná nastavená, provede se kontrola bez ohledu na dobu vypršení platnosti certifikátu.
Další informace o proměnných prostředí najdete v tématu o proměnných prostředí EdgeHub a EdgeAgent.
Změny ve verzi 1.2 a novější
- Certifikát certifikační autority zařízení se přejmenoval na certifikát certifikační autority Edge.
- Certifikát certifikační autority úlohy byl zastaralý. Správce zabezpečení IoT Edge teď vygeneruje certifikát serveru centra
edgeHub
IoT Edge přímo z certifikátu certifikační autority Edge bez certifikátu certifikační autority zprostředkující úlohy mezi nimi. - Výchozí konfigurační soubor má ve výchozím nastavení nový název a umístění
/etc/iotedge/config.yaml
/etc/aziot/config.toml
. Pomocíiotedge config import
příkazu můžete migrovat informace o konfiguraci ze starého umístění a syntaxe do nového.
Další kroky
Instalace certifikátů na zařízení IoT Edge je nezbytný krok před nasazením řešení v produkčním prostředí. Přečtěte si další informace o tom, jak připravit nasazení řešení IoT Edge v produkčním prostředí.