Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku s postupy zřídíte zařízení pomocí certifikátů x.509 přes HTTPS bez použití sady SDK pro zařízení Azure IoT DPS. Většina jazyků poskytuje knihovny pro odesílání požadavků HTTP, ale místo toho, abyste se v tomto článku zaměřili na konkrétní jazyk, použijete nástroj příkazového řádku cURL k odesílání a přijímání přes PROTOKOL HTTPS.
Postup najdete v tomto článku na počítači s Linuxem nebo Windows. Pokud používáte Subsystém Windows pro Linux (WSL) nebo používáte na počítači s Linuxem, můžete do příkazového řádku Bash zadat všechny příkazy v místním systému. Pokud používáte Windows, zadejte všechny příkazy v místním systému do příkazového řádku GitBash.
Tento článek obsahuje několik cest v závislosti na typu položky registrace a certifikátech X.509, které se rozhodnete použít. Po instalaci požadavků si před pokračováním přečtěte přehled .
Požadavky
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Dokončete kroky v rychlém startu: Nastavení služby IoT Hub Device Provisioning pomocí webu Azure Portal.
Ujistěte se, že máte na počítači nainstalovaný Python 3.7 nebo novější. Verzi Pythonu můžete zkontrolovat spuštěním
python --versionnebopython3 --version.Pokud používáte Windows, nainstalujte si nejnovější verzi Gitu. Ujistěte se, že je Git přidaný do proměnných prostředí, které jsou přístupné pro příkazové okno. Nejnovější
gitGitu společnosti Software Freedom Conservancy. Ve Windows zadáte všechny příkazy v místním systému do příkazového řádku Git Bash.Rozhraní příkazového řádku Azure. V tomto článku máte dvě možnosti spuštění příkazů Azure CLI:
- Použijte Azure Cloud Shell, interaktivní prostředí, které spouští příkazy rozhraní příkazového řádku v prohlížeči. Tato možnost se doporučuje, protože nemusíte nic instalovat. Pokud Cloud Shell používáte poprvé, přihlaste se k webu Azure Portal. Postupujte podle kroků v rychlém startu pro Cloud Shell a spusťte Cloud Shell a vyberte prostředí Bash.
- Volitelně můžete na místním počítači spustit Azure CLI. Pokud je azure CLI už nainstalované, spusťte
az upgradeupgrade rozhraní příkazového řádku a rozšíření na aktuální verzi. Pokud chcete nainstalovat Azure CLI, přečtěte si téma Instalace Azure CLI.
Pokud používáte linuxové nebo WSL prostředí, otevřete příkaz Bash a spusťte příkazy místně. Pokud používáte prostředí Windows, otevřete příkazový řádek GitBash.
Přehled
V tomto článku jsou popsané tři scénáře a počáteční kroky, které provedete, se pro každý z nich liší. Pokud chcete:
Proveďte individuální zápis pomocí samosignovaného certifikátu podle kroků uvedených v následujících částech:
- K vytvoření certifikátu podepsaného svým držitelem použijte certifikát podepsaný svým držitelem.
- K vytvoření jednotlivé registrace použijte jednotlivou registraci .
Zřiďte ho prostřednictvím jednotlivé registrace pomocí řetězu certifikátů podle kroků v těchto částech:
- K vytvoření řetězu certifikátů použijte řetěz certifikátů.
- K vytvoření jednotlivé registrace použijte jednotlivou registraci .
- Nahrajte a ověřte podpisový certifikát pro nahrání a ověření certifikátu kořenové certifikační autority.
Zřiďte ji prostřednictvím skupiny registrací podle kroků v těchto částech:
- K vytvoření řetězu certifikátů použijte řetěz certifikátů.
- K vytvoření skupiny registrací použijte skupinu registrací.
- Nahrajte a ověřte podpisový certifikát pro nahrání a ověření certifikátu kořenové certifikační autority.
Po dokončení kroků pro zvolený scénář můžete pokračovat v registraci zařízení a odeslání zprávy telemetrie.
Vytvoření certifikátu zařízení
V tomto článku použijete certifikát X.509 k ověření pomocí DPS pomocí jednotlivé registrace nebo skupiny registrací.
Pokud používáte jednotlivou registraci, můžete použít certifikát X.509 podepsaný svým držitelem nebo řetěz certifikátů složený z certifikátu zařízení a jeden nebo více podpisových certifikátů. Pokud používáte skupinu registrací, musíte použít řetěz certifikátů.
Důležité
V případě ověřování registrace X.509 se jako ID registrace zařízení použije běžný název subjektu certifikátu zařízení. ID registrace je řetězec nerozlišující velká a malá písmena alfanumerických znaků a speciální znaky: '-', , '.''_', ':'. Poslední znak musí být alfanumerický nebo pomlčka ('-'). DPS podporuje ID registrace o délce až 128 znaků; běžný název certifikátu X.509 je však omezen na 64 znaků. Pokud v následujících krocích změníte běžný název subjektu pro certifikát zařízení, ujistěte se, že dodržuje tento formát.
Použití certifikátu podepsaného svým držitelem
Pokud chcete vytvořit certifikát podepsaný svým držitelem pro použití s určitou registrací, přejděte do adresáře, kam chcete certifikát vytvořit, a postupujte takto:
Spusťte následující příkaz:
winpty openssl req -outform PEM -x509 -sha256 -newkey rsa:4096 -keyout device-key.pem -out device-cert.pem -days 30 -extensions usr_cert -addext extendedKeyUsage=clientAuth -subj "//CN=my-x509-device"Důležité
Dodatečné lomítko zadané pro název subjektu (
//CN=my-x509-device) se vyžaduje pouze k úniku řetězce s Gitem na platformách Windows.Když se zobrazí výzva k zadání hesla PEM:, použijte heslo
1234.Když se zobrazí výzva k ověření – zadejte heslo PEM:, použijte
1234heslo znovu.Soubor certifikátu veřejného klíče (device-cert.pem) a soubor privátního klíče (device-key.pem) by se teď měl vygenerovat v adresáři, ve kterém jste příkaz spustili
openssl.Soubor certifikátu má svůj běžný název subjektu (CN) nastavený na
my-x509-device.Soubor privátního klíče je chráněn heslem:
1234.Soubor certifikátu je kódovaný v Base64. Pokud chcete zobrazit běžný název subjektu (CN) a další vlastnosti souboru certifikátu, zadejte následující příkaz:
winpty openssl x509 -in device-cert.pem -text -nooutCertificate: Data: Version: 3 (0x2) Serial Number: 77:3e:1d:e4:7e:c8:40:14:08:c6:09:75:50:9c:1a:35:6e:19:52:e2 Signature Algorithm: sha256WithRSAEncryption Issuer: CN = my-x509-device Validity Not Before: May 5 21:41:42 2022 GMT Not After : Jun 4 21:41:42 2022 GMT Subject: CN = my-x509-device Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:d2:94:37:d6:1b:f7:43:b4:21:c6:08:1a:d6:d7: e6:40:44:4e:4d:24:41:6c:3e:8c:b2:2c:b0:23:29: ... 23:6e:58:76:45:18:03:dc:2e:9d:3f:ac:a3:5c:1f: 9f:66:b0:05:d5:1c:fe:69:de:a9:09:13:28:c6:85: 0e:cd:53 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Authority Key Identifier: keyid:63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Extended Key Usage: TLS Web Client Authentication Signature Algorithm: sha256WithRSAEncryption 82:8a:98:f8:47:00:85:be:21:15:64:b9:22:b0:13:cc:9e:9a: ed:f5:93:b9:4b:57:0f:79:85:9d:89:47:69:95:65:5e:b3:b1: ... cc:b2:20:9a:b7:f2:5e:6b:81:a1:04:93:e9:2b:92:62:e0:1c: ac:d2:49:b9:36:d2:b0:21
Použití řetězu certifikátů
Pokud používáte skupinu registrací, musíte se ověřit pomocí řetězu certifikátů. S jednotlivými registracemi můžete použít řetěz certifikátů nebo certifikát podepsaný svým držitelem.
Pokud chcete vytvořit řetěz certifikátů, postupujte podle pokynů v tématu Vytvoření řetězu certifikátů X.509. Pro tento článek potřebujete jenom jedno zařízení, takže po vytvoření privátního klíče a řetězu certifikátů pro první zařízení můžete zastavit.
Až budete hotovi, měli byste mít následující soubory:
| Certifikát | Soubor | Popis |
|---|---|---|
| kořenový certifikát certifikační autority. | certs/azure-iot-test-only.root.ca.cert.pem | Nahraje se do DPS a ověří se. |
| Certifikát zprostředkující certifikační autority | certs/azure-iot-test-only.intermediate.cert.pem | Použije se k vytvoření skupiny registrací v DPS. |
| privátní klíč zařízení-01 | private/device-01.key.pem | Toto zařízení používá k ověření vlastnictví certifikátu zařízení během ověřování pomocí DPS. |
| certifikát device-01 | certs/device-01.cert.pem | Slouží k vytvoření položky jednotlivé registrace pomocí DPS. |
| kompletní řetězový certifikát zařízení-01 | certs/device-01-full-chain.cert.pem | Zařízení předá ověření a registraci ve službě DPS. |
Použití jednotlivé registrace
Pokud chcete vytvořit jednotlivou registraci, která se použije pro tento článek, použijte příkaz az iot dps enrollment create .
Následující příkaz vytvoří jednotlivou položku registrace s výchozí zásadou přidělování pro vaši instanci DPS pomocí vámi zadaného certifikátu zařízení.
az iot dps enrollment create -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --attestation-type x509 --certificate-path {path to your certificate}
Nahraďte název vaší skupiny prostředků a instance DPS.
ID registrace je ID registrace vašeho zařízení a u registrací X.509 se musí shodovat s běžným názvem subjektu certifikátu zařízení.
Pokud jste postupovali podle pokynů v použití certifikátu podepsaného samostatně, ID registrace je moje-x509-zařízení.
Pokud jste postupovali podle pokynů v řetězu certifikátů, ID registrace je device-01.
Cesta k certifikátu je cesta k certifikátu vašeho zařízení.
Pokud jste postupovali podle pokynů v části Použití certifikátu podepsaného svým držitelem, název souboru je device-cert.pem.
Pokud jste postupovali podle pokynů v tématu Použití řetězu certifikátů, název souboru je certs/device-01.cert.pem.
Poznámka:
Pokud ke spouštění příkazů Azure CLI používáte Cloud Shell, můžete soubor certifikátu nahrát na cloudovou jednotku pomocí tlačítka pro nahrání.
Použití skupiny registrací
Pokud chcete vytvořit skupinu registrací, která se má použít pro tento článek, použijte příkaz az iot dps enrollment-group create .
Následující příkaz vytvoří položku skupiny registrací s výchozí zásadou přidělování pro vaši instanci DPS pomocí certifikátu zprostředkující certifikační autority:
az iot dps enrollment-group create -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --certificate-path {path_to_your_certificate}
Nahraďte název vaší skupiny prostředků a instance DPS.
ID registrace je řetězec alfanumerických znaků nerozlišující velká a malá písmena a speciální znaky:
'-','.','_',':'. Poslední znak musí být alfanumerický nebo pomlčka ('-'). Může se jednat o libovolný název, který se rozhodnete použít pro skupinu registrací.Cesta k certifikátu je cesta k vašemu zprostředkujícímu certifikátu. Pokud jste postupovali podle pokynů v části Použití řetězu certifikátů, název souboru je certs/azure-iot-test-only.intermediate.cert.pem.
Poznámka:
Pokud ke spouštění příkazů Azure CLI používáte Cloud Shell, můžete soubor certifikátu nahrát na cloudovou jednotku pomocí tlačítka pro nahrání.
Poznámka:
Pokud chcete, můžete vytvořit skupinu registrací na základě podpisového certifikátu, který byl dříve nahraný a ověřený pomocí DPS (viz další část). Uděláte to tak, že zadáte název certifikátu pomocí --ca-name parametru a v příkazu ho --certificate-pathaz iot dps enrollment-group create vynecháte.
Nahrání a ověření podpisového certifikátu
Pokud používáte řetěz certifikátů pro jednotlivou registraci nebo skupinu registrací, musíte nahrát a ověřit alespoň jeden certifikát v podpisovém řetězu certifikátu zařízení do DPS.
U jednotlivé registrace může být tento certifikát libovolný podpisový certifikát v řetězu certifikátů zařízení.
Pro skupinu registrací může být tento certifikát, který je použit ve skupině registrací, nebo jakýkoli certifikát v řetězci podepisování až po kořenový certifikát certifikační autority.
K nahrání a ověření certifikátu použijte příkaz az iot dps certificate create :
az iot dps certificate create -g {resource_group_name} --dps-name {dps_name} --certificate-name {friendly_name_for_your_certificate} --path {path_to_your_certificate} --verified true
Nahraďte název vaší skupiny prostředků a instance DPS.
Cesta k certifikátu je cesta k vašemu podpisovém certifikátu. V tomto článku doporučujeme nahrát kořenový certifikát certifikační autority. Pokud jste postupovali podle pokynů v tématu Použití řetězu certifikátů, název souboru je certs/azure-iot-test-only.root.ca.cert.pem.
Název certifikátu může obsahovat pouze alfanumerické znaky nebo následující speciální znaky:
-._. Nejsou povoleny žádné prázdné znaky. Například azure-iot-test-only-root.
Poznámka:
Pokud ke spouštění příkazů Azure CLI používáte Cloud Shell, můžete soubor certifikátu nahrát na cloudovou jednotku pomocí tlačítka pro nahrání.
Poznámka:
Kroky v této části automaticky ověřily certifikát při nahrání. Můžete také provést ruční ověření certifikátu. Další informace najdete v tématu Ruční ověření zprostředkující nebo kořenové certifikační autority.
Registrace zařízení
Zavoláte rozhraní REST API pro registraci zařízení a zřídíte ho prostřednictvím DPS.
Použijte následující příkaz curl:
curl -L -i -X PUT --cert [path_to_your_device_cert] --key [path_to_your_device_private_key] -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -d '{"registrationId": "[registration_id]"}' https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/register?api-version=2019-03-31
Kde:
-Lříká curl, aby sledoval přesměrování HTTP.–iříká curl, aby ve výstupu zahrnovala hlavičky protokolu. Tyto hlavičky nejsou nezbytně nutné, ale můžou být užitečné.-X PUTříká curl, že tento příkaz je příkaz HTTP PUT. Vyžaduje se pro toto volání rozhraní API.--cert [path_to_your_device_cert]říká curl, kde najít certifikát X.509 vašeho zařízení. Pokud je privátní klíč vašeho zařízení chráněný heslem, můžete heslo přidat za cestu certifikátu, která předchází dvojtečku, například:--cert my-device.pem:1234.Pokud používáte certifikát podepsaný svým držitelem, soubor certifikátu zařízení obsahuje jeden certifikát X.509. Pokud jste postupovali podle pokynů v části Použití certifikátu podepsaného svým držitelem, název souboru je device-cert.pem a heslo privátního klíče je
1234, takže použijte--cert device-cert.pem:1234.Pokud používáte řetěz certifikátů, například při ověřování ve skupině registrací, musí soubor certifikátu zařízení obsahovat platný řetěz certifikátů. Řetěz certifikátů musí obsahovat certifikát zařízení a všechny podpisové certifikáty do a včetně ověřeného certifikátu. Pokud jste postupovali podle pokynů v tématu Použití řetězu certifikátů k vytvoření řetězu certifikátů, cesta k souboru je certs/device-01-full-chain.cert.pem, takže použijte
--cert certs/device-01-full-chain.cert.pem.
--key [path_to_your_device_private_key]říká curl, kde najít privátní klíč zařízení.Pokud jste postupovali podle pokynů v části Použití certifikátu podepsaného svým držitelem, název souboru je device-key.pem, takže použijte
--key device-cert.pem:1234.Pokud jste postupovali podle pokynů v části Použití řetězu certifikátů, cesta ke klíči je certs/device-01-full-chain.cert.pem, takže použijte
--cert certs/device-01-full-chain.cert.pem.
-H 'Content-Type: application/json'informuje DPS, že publikujeme obsah JSON a musí být application/json.-H 'Content-Encoding: utf-8'informuje DPS o kódování, které používáme pro text zprávy. Nastavte správnou hodnotu pro váš operační systém nebo klienta; je to ale obecněutf-8.-d '{"registrationId": "[registration_id]"}', parametr–dje "data" nebo text zprávy, kterou publikujeme. Musí to být JSON ve tvaru {"registrationId":"[registration_id"}". Pro curl je obaleno jednoduchými uvozovkami; jinak je potřeba v JSONu uvozovky escapovat. V případě registrace X.509 je ID registrace běžný název subjektu (CN) vašeho certifikátu zařízení.Poslední parametr je adresa URL, do které se má publikovat. Pro "regular" (tj. místní) DPS se používá globální koncový bod DPS, global.azure-devices-provisioning.net se používá:
https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/register?api-version=2019-03-31. Musíte nahradit[dps_scope_id]a[registration_id]příslušnými hodnotami.
Příklad:
Pokud jste postupovali podle pokynů v tématu Použití certifikátu podepsaného svým držitelem:
curl -L -i -X PUT --cert device-cert.pem:1234 --key device-key.pem -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -d '{"registrationId": "my-x509-device"}' https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-x509-device/register?api-version=2021-06-01Pokud jste postupovali podle pokynů v tématu Použití řetězu certifikátů:
curl -L -i -X PUT --cert certs/device-01-full-chain.cert.pem --key private/device-01.key.pem -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -d '{"registrationId": "device-01"}' https://global.azure-devices-provisioning.net/0ne00111111/registrations/device-01/register?api-version=2021-06-01
Úspěšné volání poskytuje odpověď podobnou následujícímu příkladu:
HTTP/1.1 202 Accepted
Date: Sat, 27 Aug 2022 17:53:18 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Location: https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-x509-device/register
Retry-After: 3
x-ms-request-id: 05cdec07-c0c7-48f3-b3cd-30cfe27cbe57
Strict-Transport-Security: max-age=31536000; includeSubDomains
{"operationId":"5.506603669bd3e2bf.b3602f8f-76fe-4341-9214-bb6cfb891b8a","status":"assigning"}
Odpověď obsahuje ID operace a stav. V tomto případě je stav nastaven na assigninghodnotu . Registrace DPS je potenciálně dlouhotrvající operace, takže se provádí asynchronně. Obvykle se dotazujete na stav pomocí rozhraní REST API pro vyhledávání stavu operace , abyste zjistili, kdy je zařízení přiřazené nebo jestli dojde k selhání.
Platné hodnoty stavu pro DPS jsou:
assigned: Návratová hodnota z volání stavu označuje, ke kterému IoT Hub bylo zařízení přiřazeno.assigning: Operace je stále spuštěná.disabled: Záznam registrace je v DPS zakázaný, takže zařízení se nedá přiřadit.failed: Přiřazení se nezdařilo. HodnotaerrorCodeaerrorMessageje vrácena vregistrationStatezáznamu v odpovědi, která označuje, co se nezdařilo.unassigned
Pokud chcete volat rozhraní API pro vyhledávání stavu operace, použijte následující příkaz curl:
curl -L -i -X GET --cert [path_to_your_device_cert] --key [path_to_your_device_private_key] -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/operations/[operation_id]?api-version=2019-03-31
Použijete stejný rozsah ID, ID registrace a certifikát a klíč, jako jste to udělali v žádosti o registraci zařízení . Použijte ID operace, které bylo vráceno v odpovědi Zaregistrovat zařízení .
Následující příkaz je například pro certifikát podepsaný svým držitelem vytvořený pomocí certifikátu podepsaného svým držitelem. (Je potřeba upravit obor ID a ID operace.)
curl -L -i -X GET --cert ./device-certPUT --cert device-cert.pem:1234 --key device-key.pem -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-x509-device/operations/5.506603669bd3e2bf.b3602f8f-76fe-4341-9214-bb6cfb891b8a?api-version=2021-06-01
Následující výstup ukazuje odpověď pro zařízení, které je úspěšně přiřazeno. Všimněte si, že status vlastnost je assigned a že registrationState.assignedHub je vlastnost nastavená na IoT Hub, ve kterém bylo zařízení zřízeno.
HTTP/1.1 200 OK
Date: Sat, 27 Aug 2022 18:10:49 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
x-ms-request-id: 8f211bc5-3ed8-4c8b-9a79-e003e756e9e4
Strict-Transport-Security: max-age=31536000; includeSubDomains
{
"operationId":"5.506603669bd3e2bf.b3602f8f-76fe-4341-9214-bb6cfb891b8a",
"status":"assigned",
"registrationState":{
"x509":{
},
"registrationId":"my-x509-device",
"createdDateTimeUtc":"2022-08-27T17:53:19.5143497Z",
"assignedHub":"MyExampleHub.azure-devices.net",
"deviceId":"my-x509-device",
"status":"assigned",
"substatus":"initialAssignment",
"lastUpdatedDateTimeUtc":"2022-08-27T17:53:19.7519141Z",
"etag":"IjEyMDA4NmYyLTAwMDAtMDMwMC0wMDAwLTYzMGE1YTBmMDAwMCI="
}
}
Poznamenejte si ID zařízení a přiřazené centrum IoT. Použijete je k odeslání telemetrické zprávy v další části.
Odeslání zprávy telemetrie
Zavoláte rozhraní REST API pro odesílání událostí zařízení do služby IoT Hub, které do zařízení odesílá telemetrii.
Použijte následující příkaz curl:
curl -L -i -X POST --cert [path_to_your_device_cert] --key [path_to_your_device_private_key] -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -d '{"temperature": 30}' https://[assigned_iot_hub_name].azure-devices.net/devices/[device_id]/messages/events?api-version=2020-03-13
Kde:
-X POSTříká curl, že tento příkaz je příkazem HTTP POST. Vyžaduje se pro toto volání rozhraní API.--cert [path_to_your_device_cert]říká curl, kde najít certifikát X.509 vašeho zařízení. Pokud je privátní klíč vašeho zařízení chráněný heslem, můžete heslo přidat za cestu certifikátu, která předchází dvojtečku, například:--cert my-device.pem:1234.Pokud používáte certifikát podepsaný svým držitelem, soubor certifikátu zařízení obsahuje jeden certifikát X.509. Pokud jste postupovali podle pokynů v části Použití certifikátu podepsaného svým držitelem, název souboru je device-cert.pem a heslo privátního klíče je
1234, takže použijte--cert device-cert.pem:1234.Pokud používáte řetěz certifikátů, musí soubor certifikátu zařízení obsahovat platný řetěz certifikátů. Pokud jste postupovali podle pokynů v tématu Použití řetězu certifikátů k vytvoření řetězu certifikátů, cesta k souboru je certs/device-01-full-chain.cert.pem, takže použijte
--cert certs/device-01-full-chain.cert.pem.
--key [path_to_your_device_private_key]říká curl, kde najít privátní klíč zařízení.Pokud jste postupovali podle pokynů v části Použití certifikátu podepsaného svým držitelem, název souboru je device-key.pem, takže použijte
--key device-cert.pem:1234.Pokud jste postupovali podle pokynů v části Použití řetězu certifikátů, cesta ke klíči je certs/device-01-full-chain.cert.pem, takže použijte
--cert certs/device-01-full-chain.cert.pem.
-H 'Content-Type: application/json'říká službě IoT Hub, že publikujeme obsah JSON a musí být application/json.-H 'Content-Encoding: utf-8'Říká ioT Hubu, že kódování, které používáme pro text zprávy. Nastavte správnou hodnotu pro váš operační systém nebo klienta; je to ale obecněutf-8.-d '{"temperature": 30}', parametr–dje "data" nebo text zprávy, kterou publikujeme. V tomto článku zveřejňujeme jeden datový bod teploty. Typ obsahu byl zadán jako application/json, takže pro tento požadavek je text JSON. Pro curl je obaleno jednoduchými uvozovkami; jinak je potřeba v JSONu uvozovky escapovat.Posledním parametrem je adresa URL, do které se má publikovat. Pro rozhraní API událostí odesílání zařízení je adresa URL:
https://[assigned_iot_hub_name].azure-devices.net/devices/[device_id]/messages/events?api-version=2020-03-13.Nahraďte
[assigned_iot_hub_name]názvem centra IoT, ke kterému bylo vaše zařízení přiřazeno.Nahraďte
[device_id]ID zařízení, které bylo přiřazeno při registraci zařízení. Pro zařízení, která jsou zřizována prostřednictvím skupin registrací, platí, že ID zařízení je ID registrace. U jednotlivých registrací můžete volitelně zadat ID zařízení, které se liší od ID registrace v položce registrace.
Příklad:
Pokud jste postupovali podle pokynů v tématu Použití certifikátu podepsaného svým držitelem:
curl -L -i -X POST --cert device-cert.pem:1234 --key device-key.pem -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -d '{"temperature": 30}' https://MyExampleHub.azure-devices.net/devices/my-x509-device/messages/events?api-version=2020-03-13Pokud jste postupovali podle pokynů v tématu Použití řetězu certifikátů:
curl -L -i -X POST --cert certs/device-01-full-chain.cert.pem --key private/device-01.key.pem -H 'Content-Type: application/json' -H 'Content-Encoding: utf-8' -d '{"temperature": 30}' https://MyExampleHub.azure-devices.net/devices/my-x509-device/messages/events?api-version=2020-03-13
Úspěšné volání má odpověď podobnou následujícímu příkladu:
HTTP/1.1 204 No Content
Content-Length: 0
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: aa58c075-20d9-4565-8058-de6dc8524f14
Date: Wed, 31 Aug 2022 18:34:44 GMT
Další kroky
Další informace o ověření identity pomocí certifikátů X.509 najdete v tématu Ověření certifikátu X.509.
Další informace o nahrávání a ověřování certifikátů X.509 najdete v tématu Ověření certifikátů certifikační autority X.509 ve službě Device Provisioning.