Sdílet prostřednictvím


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

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

Snímek obrazovky znázorňující tlačítko nahrát soubor v Azure Cloud Shellu

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

Snímek obrazovky znázorňující tlačítko nahrát soubor v Azure Cloud Shellu

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

Snímek obrazovky znázorňující tlačítko nahrát soubor v Azure Cloud Shellu

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 errorCode errorMessage 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