Připojte zařízení za příjem dat k bráně Azure IoT EdgeConnect a downstream device to an Azure IoT Edge gateway

Tento článek poskytuje pokyny k navázání důvěryhodného připojení mezi podřízenými zařízeními a IoT Edge transparentními branami.This article provides instructions for establishing a trusted connection between downstream devices and IoT Edge transparent gateways. V případě transparentní brány může jedno nebo více zařízení předat zprávy pomocí jediného zařízení brány, které udržuje připojení k IoT Hub.In a transparent gateway scenario, one or more devices can pass their messages through a single gateway device that maintains the connection to IoT Hub. Pro zařízení pro příjem dat může být libovolná aplikace nebo platforma, která má vytvořenou identitu pomocí cloudové služby Azure IoT Hub .A downstream device can be any application or platform that has an identity created with the Azure IoT Hub cloud service. V mnoha případech tyto aplikace používají sadu SDK pro zařízení Azure IoT.In many cases, these applications use the Azure IoT device SDK. Navazující zařízení by mohlo být i aplikace běžící na samotném zařízení IoT Edge brány.A downstream device could even be an application running on the IoT Edge gateway device itself.

Existují tři obecné kroky k nastavení úspěšného transparentního připojení brány.There are three general steps to set up a successful transparent gateway connection. Tento článek se věnuje třetímu kroku:This article covers the third step:

  1. Zařízení brány musí bezpečně připojit se k zařízením pro příjem dat, přijímat komunikaci ze zařízení pro příjem dat a směrovat zprávy do správného umístění.The gateway device needs to securely connect to downstream devices, receive communications from downstream devices, and route messages to the proper destination. Další informace najdete v tématu Konfigurace zařízení IoT Edge pro fungování jako transparentní brány.For more information, see Configure an IoT Edge device to act as a transparent gateway.
  2. Zařízení pro příjem dat potřebuje identitu zařízení, aby se mohla ověřit pomocí IoT Hub a ví, jak komunikovat přes jeho zařízení brány.The downstream device needs a device identity to be able to authenticate with IoT Hub, and know to communicate through its gateway device. Další informace najdete v tématu ověření zařízení pro příjem dat do Azure IoT Hub.For more information, see Authenticate a downstream device to Azure IoT Hub.
  3. Zařízení pro příjem dat musí být schopné se bezpečně připojit k zařízení brány.The downstream device needs to be able to securely connect to its gateway device.

Tento článek identifikuje běžné problémy s připojením zařízení příjem dat a provede vás v nastavení zařízení příjem dat podle:This article identifies common problems with downstream device connections and guides you in setting up your downstream devices by:

  • Kde vysvětluje zabezpečení transportní vrstvy (TLS) a základní informace o certifikátu.Explaining transport layer security (TLS) and certificate fundamentals.
  • Vysvětlení fungování TLS knihovny v různých operačních systémech a jak se má každý operační systém zacházet s certifikáty.Explaining how TLS libraries work across different operating systems and how each operating system deals with certificates.
  • Procházení Azure IoT ukázky v několika jazycích, které vám pomůžou začít.Walking through Azure IoT samples in several languages to help get you started.

V tomto článku se pojmem brána brány a brána IoT Edge odkazují na IoT Edge zařízení nakonfigurované jako transparentní brána.In this article, the terms gateway and IoT Edge gateway refer to an IoT Edge device configured as a transparent gateway.

PožadavkyPrerequisites

K dispozici je soubor certifikátu Azure-IoT-test-Only. root. ca. CERT. pem , který se vygeneroval v části Konfigurace zařízení IoT Edge tak, aby fungoval jako transparentní brána , která je dostupná na vašem zařízení pro příjem dat.Have the azure-iot-test-only.root.ca.cert.pem certificate file that was generated in Configure an IoT Edge device to act as a transparent gateway available on your downstream device. Vaše zařízení pro příjem dat používá tento certifikát k ověření identity zařízení brány.Your downstream device uses this certificate to validate the identity of the gateway device.

Příprava příjem dat zařízeníPrepare a downstream device

Pro zařízení pro příjem dat může být libovolná aplikace nebo platforma, která má vytvořenou identitu pomocí cloudové služby Azure IoT Hub .A downstream device can be any application or platform that has an identity created with the Azure IoT Hub cloud service. V mnoha případech tyto aplikace používají sadu SDK pro zařízení Azure IoT.In many cases, these applications use the Azure IoT device SDK. Navazující zařízení by mohlo být i aplikace běžící na samotném zařízení IoT Edge brány.A downstream device could even be an application running on the IoT Edge gateway device itself. Další IoT Edge zařízení ale nemůže být podřízená bráně IoT Edge.However, another IoT Edge device cannot be downstream of an IoT Edge gateway.

Poznámka

Zařízení IoT, která mají identity registrovaná v IoT Hub můžou používat vlákna modulu k izolaci různých procesů, hardwaru nebo funkcí na jednom zařízení.IoT devices that have identities registered in IoT Hub can use module twins to isolate different process, hardware, or functions on a single device. IoT Edge brány podporují připojení k navazujícím modulům pomocí ověřování pomocí symetrického klíče, ale ne pomocí ověřování pomocí certifikátu X. 509.IoT Edge gateways support downstream module connections using symmetric key authentication but not X.509 certificate authentication.

Připojit zařízení příjem dat na hraničních zařízeních IoT gateway, je třeba dvě věci:To connect a downstream device to an IoT Edge gateway, you need two things:

  • Zařízení nebo aplikaci, která je nakonfigurována s řetězcem připojení zařízení IoT Hub s informace pro připojení k bráně.A device or application that's configured with an IoT Hub device connection string appended with information to connect it to the gateway.

    Tento krok je vysvětlen v tématu ověření zařízení pro příjem dat do Azure IoT Hub.This step is explained in Authenticate a downstream device to Azure IoT Hub.

  • Zařízení nebo aplikace musí důvěřovat certifikátu kořenové certifikační autority brány, aby ověřili připojení TLS k zařízení brány.The device or application has to trust the gateway's root CA certificate to validate the TLS connections to the gateway device.

    Tento krok je podrobněji vysvětlen ve zbývající části tohoto článku.This step is explained in detail in the rest of this article. Tento krok lze provést jedním ze dvou způsobů: instalací certifikátu certifikační autority do úložiště certifikátů operačního systému nebo (u některých jazyků) odkazem na certifikát v aplikacích, které používají sady SDK Azure IoT.This step can be performed one of two ways: by installing the CA certificate in the operating system's certificate store, or (for certain languages) by referencing the certificate within applications using the Azure IoT SDKs.

Základy TLS a certifikátůTLS and certificate fundamentals

Výzvu se bezpečně připojuje podřízené zařízení k IoT Edge je stejně jako jinou klientem a serverem zabezpečené komunikaci, která nastane v Internetu.The challenge of securely connecting downstream devices to IoT Edge is just like any other secure client/server communication that occurs over the internet. Klient a server zabezpečeně komunikují přes Internet pomocí protokolu TLS (Transport Layer Security).A client and a server securely communicate over the internet using Transport layer security (TLS). Protokol TLS je sestaven pomocí standardních konstrukcí infrastruktury veřejných klíčů (PKI) nazývaných certifikáty.TLS is built using standard Public key infrastructure (PKI) constructs called certificates. TLS je poměrně spojená specifikace a řeší široké spektrum témat souvisejících s zabezpečením dvou koncových bodů.TLS is a fairly involved specification and addresses a wide range of topics related to securing two endpoints. V této části najdete přehled konceptů, které jsou důležité pro bezpečné připojení zařízení k bráně IoT Edge.This section summarizes the concepts relevant for you to securely connect devices to an IoT Edge gateway.

Když se klient připojí k serveru, server prezentuje řetěz certifikátů nazývaný řetěz certifikátů serveru.When a client connects to a server, the server presents a chain of certificates, called the server certificate chain. Řetěz certifikátů obvykle zahrnuje kořenový certifikát certifikační autority (CA), jeden nebo více zprostředkujících certifikátů CA a nakonec vlastní certifikát serveru.A certificate chain typically comprises a root certificate authority (CA) certificate, one or more intermediate CA certificates, and finally the server's certificate itself. Klient vytváří vztah důvěryhodnosti se serverem pomocí kryptograficky ověření řetězu certifikátů celý server.A client establishes trust with a server by cryptographically verifying the entire server certificate chain. Toto ověření klienta řetězu certifikátů serveru se nazývá ověření řetězu serveru.This client validation of the server certificate chain is called server chain validation. Klient kryptograficky vystavuje službu, aby prokázal vlastnictví privátního klíče přidruženého k certifikátu serveru v procesu, který se nazývá důkaz o vlastnictví.The client cryptographically challenges the service to prove possession of the private key associated with the server certificate in a process called proof of possession. Kombinace ověřování řetězu serveru a ověření vlastnictví se nazývá ověřování serveru.The combination of server chain validation and proof of possession is called server authentication. Pokud chcete ověřit řetěz certifikátů serveru, klient potřebuje kopii certifikátu kořenové certifikační Autority, která byla použita k vytvoření (nebo vydat) na server certifikát.To validate a server certificate chain, a client needs a copy of the root CA certificate that was used to create (or issue) the server's certificate. Obvykle při připojování k webům, prohlížeč vybavená předem nakonfigurovaným rozhraním běžně používaných certifikátů certifikačních Autorit, klient získá bezproblémový procesu.Normally when connecting to websites, a browser comes pre-configured with commonly used CA certificates so the client has a seamless process.

Když se zařízení připojí ke službě Azure IoT Hub, klient je zařízení a cloudové služby IoT Hub je na serveru.When a device connects to Azure IoT Hub, the device is the client and the IoT Hub cloud service is the server. Cloudová služba IoT Hub se zálohuje certifikátem kořenové certifikační autority s názvem Baltimore CyberTrust Root, který je veřejně dostupný a široce používaný.The IoT Hub cloud service is backed by a root CA certificate called Baltimore CyberTrust Root, which is publicly available and widely used. Protože certifikát služby IoT Hub certifikační Autority je již nainstalován na většině zařízení, mnoho implementací protokolu TLS (OpenSSL, Schannel, LibreSSL) automaticky použije při ověřování certifikátu serveru.Since the IoT Hub CA certificate is already installed on most devices, many TLS implementations (OpenSSL, Schannel, LibreSSL) automatically use it during server certificate validation. Zařízení, která se může úspěšně připojit ke službě IoT Hub může mít problémy při pokusu o připojení k bráně IoT Edge.A device that may successfully connect to IoT Hub may have issues trying to connect to an IoT Edge gateway.

Když se zařízení připojí k bráně IoT Edge, klient je podřízený zařízení a zařízení brány je na serveru.When a device connects to an IoT Edge gateway, the downstream device is the client and the gateway device is the server. Azure IoT Edge umožňuje k vytváření řetězů certifikátů brány, ale jsou vhodná pro operátory (nebo uživatelé).Azure IoT Edge allows operators (or users) to build gateway certificate chains however they see fit. Operátor, který můžete použít veřejný certifikát certifikační Autority, jako je Baltimore, nebo podepsaný svým držitelem (nebo interní) kořenový certifikát certifikační Autority.The operator may choose to use a public CA certificate, like Baltimore, or use a self-signed (or in-house) root CA certificate. Veřejné certifikáty certifikační Autority často mají náklady spojené s nimi, proto se obvykle používají v produkčních scénářích.Public CA certificates often have a cost associated with them, so are typically used in production scenarios. Certifikáty certifikační Autority podepsané svým držitelem jsou upřednostňované pro vývoj a testování.Self-signed CA certificates are preferred for development and testing. Články s nastavením transparentní brány uvedené v úvodu používají certifikáty kořenové certifikační autority podepsané svým držitelem.The transparent gateway setup articles listed in the introduction use self-signed root CA certificates.

Pokud používáte certifikát podepsaný svým držitelem kořenové certifikační Autority pro brány IoT Edge, musí být nainstalovaný na nebo k dispozici na všech zařízeních podřízené pokusu o připojení k bráně.When you use a self-signed root CA certificate for an IoT Edge gateway, it needs to be installed on or provided to all the downstream devices attempting to connect to the gateway.

Instalace certifikátu brány

Další informace o IoT Edgech certifikátů a některých dopadech na produkční prostředí najdete v tématu IoT Edge informace o využití certifikátu.To learn more about IoT Edge certificates and some production implications, see IoT Edge certificate usage details.

Zadejte certifikát kořenové certifikační autority.Provide the root CA certificate

Pro ověření certifikátů zařízení brány musí zařízení pro příjem dat vyžadovat vlastní kopii kořenového certifikátu certifikační autority.To verify the gateway device's certificates, the downstream device needs its own copy of the root CA certificate. Pokud jste pro vytváření testovacích certifikátů použili skripty poskytované v úložišti Git IoT Edge, pak se certifikát kořenové certifikační autority nazývá Azure-IoT-test-Only. root. ca. CERT. pem.If you used the scripts provided in the IoT Edge git repository to create test certificates, then the root CA certificate is called azure-iot-test-only.root.ca.cert.pem. Pokud jste to ještě neudělali jako součást dalších kroků přípravy na zařízení, přesuňte tento soubor certifikátu do libovolného adresáře v zařízení pro příjem dat.If you haven't already as part of the other downstream device preparation steps, move this certificate file to any directory on your downstream device. K přesunutí souboru certifikátu můžete použít službu, jako je Azure Key Vault , nebo funkci, jako je protokol Secure Copy .You can use a service like Azure Key Vault or a function like Secure copy protocol to move the certificate file.

Instalace certifikátů v operačním systémuInstall certificates in the OS

Instalace kořenového certifikátu certifikační autority v úložišti certifikátů operačního systému obecně umožňuje, aby většina aplikací používala certifikát kořenové certifikační autority.Installing the root CA certificate in the operating system's certificate store generally allows most applications to use the root CA certificate. Existují nějaké výjimky, jako NodeJS aplikace, které nepoužívají úložiště certifikátů operačního systému, ale používají interní úložiště certifikátů modulu runtime uzlu.There are some exceptions, like NodeJS applications that don't use the OS certificate store but rather use the Node runtime's internal certificate store. Pokud nemůžete nainstalovat certifikát na úrovni operačního systému, přeskočte k používání certifikátů se sadami SDK služby Azure IoT.If you can't install the certificate at the operating system level, skip ahead to Use certificates with Azure IoT SDKs.

UbuntuUbuntu

Následující příkazy jsou příkladem toho, jak nainstalovat certifikát certifikační Autority na hostiteli se systémem Ubuntu.The following commands are an example of how to install a CA certificate on an Ubuntu host. V tomto příkladu se předpokládá, že používáte certifikát Azure-IoT-test-Only. root. ca. CERT. pem z článků s požadavky a že jste certifikát zkopírovali do umístění na zařízení pro příjem dat.This example assumes that you're using the azure-iot-test-only.root.ca.cert.pem certificate from the prerequisites articles, and that you've copied the certificate into a location on the downstream device.

sudo cp <path>/azure-iot-test-only.root.ca.cert.pem /usr/local/share/ca-certificates/azure-iot-test-only.root.ca.cert.pem.crt
sudo update-ca-certificates

Měla by se zobrazit zpráva s informacemi o aktualizaci certifikátů v/etc/SSL/certs.... 1 Přidání, 0 odebraných; Hotovo. "You should see a message that says, "Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done."

WindowsWindows

Následující postup je příklad toho, jak nainstalovat certifikát certifikační Autority na hostitele Windows.The following steps are an example of how to install a CA certificate on a Windows host. V tomto příkladu se předpokládá, že používáte certifikát Azure-IoT-test-Only. root. ca. CERT. pem z článků s požadavky a že jste certifikát zkopírovali do umístění na zařízení pro příjem dat.This example assumes that you're using the azure-iot-test-only.root.ca.cert.pem certificate from the prerequisites articles, and that you've copied the certificate into a location on the downstream device.

Certifikáty můžete nainstalovat pomocí rutiny Import-Certificate prostředí PowerShell jako správce:You can install certificates using PowerShell's Import-Certificate as an administrator:

import-certificate  <file path>\azure-iot-test-only.root.ca.cert.pem -certstorelocation cert:\LocalMachine\root

Certifikáty můžete nainstalovat také pomocí nástroje Certlm :You can also install certificates using the certlm utility:

  1. V nabídce Start vyhledejte a vyberte spravovat certifikáty počítače.In the Start menu, search for and select Manage computer certificates. Otevře se nástroj s názvem Certlm .A utility called certlm opens.
  2. Přejděte na certifikáty – místní počítač > důvěryhodných kořenových certifikačních autorit.Navigate to Certificates - Local Computer > Trusted Root Certification Authorities.
  3. Klikněte pravým tlačítkem na certifikáty a vyberte všechny úkoly > importovat.Right-click Certificates and select All Tasks > Import. Průvodce importem certifikátu by měl spustit.The certificate import wizard should launch.
  4. Postupujte podle pokynů pro přesměrování a import souboru certifikátu <path>/azure-iot-test-only.root.ca.cert.pem.Follow the steps as directed and import certificate file <path>/azure-iot-test-only.root.ca.cert.pem. Po dokončení, měli byste vidět zprávu "Úspěšně naimportoval".When completed, you should see a "Successfully imported" message.

Můžete také nainstalovat certifikáty programově pomocí rozhraní API pro .NET, jak je znázorněno v ukázce .NET dále v tomto článku.You can also install certificates programmatically using .NET APIs, as shown in the .NET sample later in this article.

Obvykle aplikace používají k zabezpečenému připojení přes TLS sadu protokolů TLS s názvem Schannel .Typically applications use the Windows provided TLS stack called Schannel to securely connect over TLS. Před pokusem o navázání připojení TLS vyžaduje Schannel instalaci všech certifikátů v úložišti certifikátů Windows.Schannel requires that any certificates be installed in the Windows certificate store before attempting to establish a TLS connection.

Používání certifikátů s sad SDK Azure IoTUse certificates with Azure IoT SDKs

Tato část popisuje, jak připojit Azure IoT SDK pro zařízení IoT Edge pomocí jednoduchých ukázkových aplikací.This section describes how the Azure IoT SDKs connect to an IoT Edge device using simple sample applications. Cílem všechny ukázky je připojení klienta zařízení a odesílání telemetrických zpráv k bráně, pak ukončete připojení a ukončení.The goal of all the samples is to connect the device client and send telemetry messages to the gateway, then close the connection and exit.

Máte připravené před použitím ukázek úrovni aplikace splňovat dvě podmínky:Have two things ready before using the application-level samples:

  • IoT Hub připojovacího řetězce pro vaše zařízení, který se změnil tak, aby odkazoval na zařízení brány, a všechny certifikáty potřebné k ověření vašeho zařízení pro příjem dat IoT Hub.Your downstream device's IoT Hub connection string modified to point to the gateway device, and any certificates required to authenticate your downstream device to IoT Hub. Další informace najdete v tématu ověření zařízení pro příjem dat do Azure IoT Hub.For more information, see Authenticate a downstream device to Azure IoT Hub.

  • Úplná cesta k certifikátu kořenové certifikační Autority, který jste zkopírovali a někam uložit na příjem dat zařízení.The full path to the root CA certificate that you copied and saved somewhere on your downstream device.

    Například, <path>/azure-iot-test-only.root.ca.cert.pem.For example, <path>/azure-iot-test-only.root.ca.cert.pem.

NodeJSNodeJS

Tato část poskytuje ukázkové aplikace pro připojení klienta Azure IoT NodeJS zařízení brány IoT Edge.This section provides a sample application to connect an Azure IoT NodeJS device client to an IoT Edge gateway. V případě aplikací NodeJS je nutné na úrovni aplikace nainstalovat certifikát kořenové certifikační autority, jak je znázorněno zde.For NodeJS applications, you must install the root CA certificate at the application level as shown here. NodeJS aplikace nepoužívají úložiště certifikátů systému.NodeJS applications don't use the system's certificate store.

  1. Získejte ukázku pro edge_downstream_device. js ze sady SDK pro zařízení Azure IoT pro Node. js Samples.Get the sample for edge_downstream_device.js from the Azure IoT device SDK for Node.js samples repo.
  2. Ujistěte se, že máte všechny požadavky na spuštění ukázky, a to kontrolou souboru Readme.MD .Make sure that you have all the prerequisites to run the sample by reviewing the readme.md file.
  3. V souboru edge_downstream_device. js aktualizujte proměnné ConnectionString a edge_ca_cert_path .In the edge_downstream_device.js file, update the connectionString and edge_ca_cert_path variables.
  4. Naleznete v dokumentaci sady SDK pro pokyny o tom, jak ukázku spustit ve vašem zařízení.Refer to the SDK documentation for instructions on how to run the sample on your device.

Informace o tom ukázku, kterou používáte, následující fragment kódu je jak Klientská sada SDK čte soubor certifikátu a použije ho k navázat zabezpečené připojení TLS:To understand the sample that you're running, the following code snippet is how the client SDK reads the certificate file and uses it to establish a secure TLS connection:

// Provide the Azure IoT device client via setOptions with the X509
// Edge root CA certificate that was used to setup the Edge runtime
var options = {
    ca : fs.readFileSync(edge_ca_cert_path, 'utf-8'),
};

.NET.NET

Tato část představuje ukázkovou aplikaci pro připojení klienta Azure IoT .NET zařízení brány IoT Edge.This section introduces a sample application to connect an Azure IoT .NET device client to an IoT Edge gateway. Možnost automaticky používat všechny nainstalované certifikáty v úložišti certifikátů systému na hostitele systému Linux a Windows jsou však aplikace .NET.However, .NET applications are automatically able to use any installed certificates in the system's certificate store on both Linux and Windows hosts.

  1. Získejte ukázku pro EdgeDownstreamDevice ze složky ukázek rozhraní .NET IoT Edge.Get the sample for EdgeDownstreamDevice from the IoT Edge .NET samples folder.
  2. Ujistěte se, že máte všechny požadavky na spuštění ukázky, a to kontrolou souboru Readme.MD .Make sure that you have all the prerequisites to run the sample by reviewing the readme.md file.
  3. V souboru Properties/launchSettings. JSON aktualizujte proměnné DEVICE_CONNECTION_STRING a CA_CERTIFICATE_PATH .In the Properties / launchSettings.json file, update the DEVICE_CONNECTION_STRING and CA_CERTIFICATE_PATH variables. Pokud chcete použít certifikát nainstalován v úložišti důvěryhodných certifikátů v hostitelském systému, ponechte tato proměnná prázdná.If you want to use the certificate installed in the trusted certificate store on the host system, leave this variable blank.
  4. Naleznete v dokumentaci sady SDK pro pokyny o tom, jak ukázku spustit ve vašem zařízení.Refer to the SDK documentation for instructions on how to run the sample on your device.

Chcete-li programově nainstalovat důvěryhodný certifikát do úložiště certifikátů prostřednictvím aplikace .NET, přečtěte si funkci InstallCACert () v souboru EdgeDownstreamDevice/program.cs .To programmatically install a trusted certificate in the certificate store via a .NET application, refer to the InstallCACert() function in the EdgeDownstreamDevice / Program.cs file. Tato operace je idempotentní, proto můžete spustit více než jednou pomocí stejných hodnot s další neplatí.This operation is idempotent, so can be run multiple times with the same values with no additional effect.

CC

Tato část představuje ukázkovou aplikaci pro připojení klienta Azure IoT C zařízení brány IoT Edge.This section introduces a sample application to connect an Azure IoT C device client to an IoT Edge gateway. SDK pro jazyk C mohou pracovat s mnoha TLS knihoven, včetně OpenSSL, WolfSSL a zprostředkovatele Schannel.The C SDK can operate with many TLS libraries, including OpenSSL, WolfSSL, and Schannel. Další informace najdete v tématu sada SDK pro Azure IoT C.For more information, see the Azure IoT C SDK.

  1. Získejte aplikaci iotedge_downstream_device_sample ze sady SDK pro zařízení Azure IoT pro C Samples.Get the iotedge_downstream_device_sample application from the Azure IoT device SDK for C samples.
  2. Ujistěte se, že máte všechny požadavky na spuštění ukázky, a to kontrolou souboru Readme.MD .Make sure that you have all the prerequisites to run the sample by reviewing the readme.md file.
  3. V souboru iotedge_downstream_device_sample. c aktualizujte proměnné ConnectionString a edge_ca_cert_path .In the iotedge_downstream_device_sample.c file, update the connectionString and edge_ca_cert_path variables.
  4. Naleznete v dokumentaci sady SDK pro pokyny o tom, jak ukázku spustit ve vašem zařízení.Refer to the SDK documentation for instructions on how to run the sample on your device.

Zařízení Azure IoT SDK pro jazyk C poskytuje možnost zaregistrovat certifikát certifikační Autority při nastavování klienta.The Azure IoT device SDK for C provides an option to register a CA certificate when setting up the client. Tato operace není nainstalován certifikát kdekoli, ale místo toho používá formát řetězce certifikátu v paměti.This operation doesn't install the certificate anywhere, but rather uses a string format of the certificate in memory. Uložený certifikát získáte základní TLS zásobníku při navazování připojení.The saved certificate is provided to the underlying TLS stack when establishing a connection.

(void)IoTHubDeviceClient_SetOption(device_handle, OPTION_TRUSTED_CERT, cert_string);

Na hostitelích s Windows Pokud nepoužíváte OpenSSL nebo jiné knihovny TLS, sady SDK ve výchozím nastavení pomocí zprostředkovatele Schannel.On Windows hosts, if you're not using OpenSSL or another TLS library, the SDK default to using Schannel. Aby mohla Schannel fungovat, musí se certifikát IoT Edge Root CA nainstalovat do úložiště certifikátů Windows, a ne nastavit pomocí operace IoTHubDeviceClient_SetOption.For Schannel to work, the IoT Edge root CA certificate should be installed in the Windows certificate store, not set using the IoTHubDeviceClient_SetOption operation.

JavaJava

Tato část představuje ukázkovou aplikaci pro připojení klienta zařízení Azure IoT Java na hraničních zařízeních IoT gateway.This section introduces a sample application to connect an Azure IoT Java device client to an IoT Edge gateway.

  1. Ukázka pro odeslání události ze sady SDK pro zařízení Azure IoT pro Java SamplesGet the sample for Send-event from the Azure IoT device SDK for Java samples.
  2. Ujistěte se, že máte všechny požadavky na spuštění ukázky, a to kontrolou souboru Readme.MD .Make sure that you have all the prerequisites to run the sample by reviewing the readme.md file.
  3. Naleznete v dokumentaci sady SDK pro pokyny o tom, jak ukázku spustit ve vašem zařízení.Refer to the SDK documentation for instructions on how to run the sample on your device.

PythonPython

Tato část představuje ukázkovou aplikaci pro připojení Azure IoT Pythonového klienta zařízení brány IoT Edge.This section introduces a sample application to connect an Azure IoT Python device client to an IoT Edge gateway.

  1. Získejte ukázku pro send_message ze sady Azure IoT SDK pro zařízení pro Python Samples.Get the sample for send_message from the Azure IoT device SDK for Python samples.
  2. Ujistěte se, že jste buď spustili v kontejneru IoT Edge, nebo ve scénáři ladění, které mají nastavené proměnné prostředí EdgeHubConnectionString a EdgeModuleCACertificateFile.Ensure that you are either running in an IoT Edge container, or in a debug scenario, have the EdgeHubConnectionString and EdgeModuleCACertificateFile environment variables set.
  3. Naleznete v dokumentaci sady SDK pro pokyny o tom, jak ukázku spustit ve vašem zařízení.Refer to the SDK documentation for instructions on how to run the sample on your device.

Otestovat připojení brányTest the gateway connection

Pomocí tohoto ukázkového příkazu otestujte, jestli se vaše zařízení pro příjem dat může připojit k zařízení brány:Use this sample command to test that your downstream device can connect to the gateway device:

openssl s_client -connect mygateway.contoso.com:8883 -CAfile <CERTDIR>/certs/azure-iot-test-only.root.ca.cert.pem -showcerts

Tento příkaz testuje připojení přes MQTTS (port 8883).This command tests connections over MQTTS (port 8883). Pokud používáte jiný protokol, upravte příkaz podle potřeby pro AMQPS (5671) nebo HTTPS (433).If you're using a different protocol, adjust the command as neccessary for AMQPS (5671) or HTTPS (433).

Výstup tohoto příkazu může být dlouhý, včetně informací o všech certifikátech v řetězu.The output of this command may be long, including information about all the certificates in the chain. Pokud je připojení úspěšné, zobrazí se řádek, například Verification: OK nebo Verify return code: 0 (ok).If your connection is successful, you'll see a line like Verification: OK or Verify return code: 0 (ok).

Ověření připojení brány

Řešení potíží s připojením brányTroubleshoot the gateway connection

Pokud má vaše listové zařízení přerušované připojení k zařízení brány, zkuste k řešení použít následující postup.If your leaf device has intermittent connection to its gateway device, try the following steps for resolution.

  1. Je název hostitele brány v připojovacím řetězci stejný jako hodnota názvu hostitele v souboru IoT Edge config. yaml na zařízení brány?Is the gateway hostname in the connection string the same as the hostname value in the IoT Edge config.yaml file on the gateway device?
  2. Je název hostitele brány přeložitelný na IP adresu?Is the gateway hostname resolvable to an IP Address? Přerušovaná připojení můžete vyřešit buď pomocí DNS, nebo přidáním položky souboru hostitele na listovém zařízení.You can resolve intermittent connections either by using DNS or by adding a host file entry on the leaf device.
  3. Jsou v bráně firewall otevřené komunikační porty?Are communication ports open in your firewall? Komunikace založená na použitém protokolu (MQTTS: 8883/AMQPS: 5671/HTTPS: 433) musí být mezi podřízenými zařízeními a transparentním IoT Edge.Communication based on the protocol used (MQTTS:8883/AMQPS:5671/HTTPS:433) must be possible between downstream device and the transparent IoT Edge.

Další krokyNext steps

Přečtěte si, jak IoT Edge můžou do zařízení pro příjem dat nastavovat Možnosti offline .Learn how IoT Edge can extend offline capabilities to downstream devices.