Jak používat certifikáty X.509 přes HTTPS bez sady SDK
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.
Proveďte kroky v části 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 --version
nebopython3 --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ší verzi nástrojů pro instalaci, včetně Git Bashu, aplikace příkazového řádku, kterou můžete použít k interakci s místním úložištěm Git, najdete v klientských nástrojích
git
Gitu společnosti Software Freedom Conservancy. Ve Windows zadáte všechny příkazy v místním systému do příkazového řádku GitBash.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 upgrade
upgrade 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 budou lišit. Pokud chcete:
Zřiďte ho prostřednictvím jednotlivé registrace pomocí certifikátu podepsaného svým držitelem, postupujte podle kroků v těchto čá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 jednotlivé registrace pomocí řetězu certifikátů, postupujte 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í a postupujte 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
1234
heslo 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 -noout
Certificate: 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 části Použití certifikátu podepsaného svým držitelem, ID registrace je my-x509-device.
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-path
az 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 to může být jakýkoli podpisový certifikát v řetězu certifikátů zařízení.
Pro skupinu registrací to může být certifikát nastavený ve skupině registrací nebo jakýkoli certifikát v jeho registračním řetězu až po kořenový certifikát certifikační autority a včetně certifikátu kořenové 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 se jedná o 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í bude obsahovat jenom 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–d
je "data" nebo text zprávy, kterou publikujeme. Musí to být JSON ve tvaru {"registrationId":"[registration_id"}". Všimněte si, že pro curl je zabalena do jednoduchých uvozovek; v opačném případě je nutné uvozovky ve formátu JSON uvozovek uvozovat. 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
. Všimněte si, že je nutné nahradit[dps_scope_id]
příslušné hodnoty a[registration_id]
za odpovídající hodnoty.
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-01
Pokud 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í bude mít odpověď podobnou této:
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 assigning
hodnotu . Registrace DPS je potenciálně dlouhotrvající operace, takže se provádí asynchronně. Obvykle se pomocí rozhraní REST API pro vyhledávání stavu operace dotazujete na stav a určíte, kdy je vaše zařízení přiřazené nebo jestli došlo k selhání.
Platné hodnoty stavu pro DPS jsou:
assigned
: Návratová hodnota ze stavového volání bude indikovat, k čemu 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. V odpovědi budeerrorCode
errorMessage
vrácenregistrationState
záznam, který indikuje, 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ý obor 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ěď na zařízení, které bylo ú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 se jedná o příkaz 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í bude obsahovat jenom 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–d
je "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. Všimněte si, že pro curl je zabalena do jednoduchých uvozovek; v opačném případě je nutné uvozovky ve formátu JSON uvozovek uvozovat.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á se zřizují prostřednictvím skupin registrací, bude 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-13
Pokud 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í bude mít odpověď podobnou této:
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 Konfigurace ověřených certifikátů certifikační autority.