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 .

Předpoklady

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:

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:

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

  2. Když se zobrazí výzva k zadání hesla PEM:, použijte heslo 1234.

  3. 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.

  4. 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í.

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í.

Screenshot that shows the upload file button in Azure Cloud Shell.

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í.

Screenshot that shows the upload file button in Azure Cloud Shell.

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 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í.

Screenshot that shows the upload file button in Azure Cloud Shell.

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 assigninghodnotu . 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 bude errorCodeerrorMessage vrácen registrationState 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