Podrobnosti o použití certifikátu Azure IoT EdgeAzure IoT Edge certificate usage detail

K ověření identity a legitimity modulu runtime centra IoT Edge , ke kterému se připojují, se IoT Edge certifikáty používají pro moduly a podřízená zařízení IoT.IoT Edge certificates are used for the modules and downstream IoT devices to verify the identity and legitimacy of the IoT Edge hub runtime module that they connect to. Tyto ověřování povolit protokol TLS (zabezpečení transportní vrstvy) zabezpečené připojení mezi modul runtime, moduly a zařízení IoT.These verifications enable a TLS (transport layer security) secure connection between the runtime, the modules, and the IoT devices. Jako služby IoT Hub, sama IoT Edge vyžaduje zabezpečené a šifrované připojení z IoT směru server-klient (listy) zařízení a moduly IoT Edge.Like IoT Hub itself, IoT Edge requires a secure and encrypted connection from IoT downstream (or leaf) devices and IoT Edge modules. Aby bylo možné vytvořit zabezpečené připojení TLS, modul IoT Edge hub prezentuje řetěz certifikátů serveru pro připojení klientů, aby ověřil jeho identitu.To establish a secure TLS connection, the IoT Edge hub module presents a server certificate chain to connecting clients in order for them to verify its identity.

Tento článek vysvětluje, jak IoT Edge certifikáty můžou fungovat v produkčních, vývojových a testovacích scénářích.This article explains how IoT Edge certificates can work in production, development, and test scenarios. Tyto skripty jsou různé (prostředí Powershell nebo bash), jsou pojmy stejné mezi systémy Linux a Windows.While the scripts are different (Powershell vs. bash), the concepts are the same between Linux and Windows.

Certifikáty IoT EdgeIoT Edge certificates

Výrobci nejsou obvykle koncoví uživatelé zařízení IoT Edge.Usually, manufacturers are not the end users of an IoT Edge device. V některých případech je jediným vztahem mezi těmito dvěma pokaždé, když koncový uživatel, nebo operátor zakoupí obecné zařízení provedené výrobcem.Sometimes the only relationship between the two is when the end user, or operator, purchases a generic device made by the manufacturer. Jindy, výrobce v rámci smlouvy pracuje na sestavení vlastního zařízení jménem operátora.Other times, the manufacturer works under contract to build a custom device on behalf of the operator. Návrh certifikát IoT Edge se pokusí vezměte v úvahu oba scénáře.The IoT Edge certificate design attempts to take both scenarios into account.

Následující obrázek znázorňuje použití IoT Edge certifikátů.The following figure illustrates IoT Edge's usage of certificates. Mezi certifikátem kořenové certifikační autority a certifikátem certifikační autority zařízení může být nulový, jeden nebo mnoho zprostředkujících podpisových certifikátů v závislosti na počtu zúčastněných entit.There may be zero, one, or many intermediate signing certificates between the root CA certificate and the device CA certificate, depending on the number of entities involved. Tady zobrazujeme jeden případ.Here we show one case.

Diagram vztahů typické certifikátu

Certifikační autoritaCertificate authority

Certifikační autority, nebo "CA" pro krátkodobé, je entita, která vystavuje digitální certifikáty.The certificate authority, or 'CA' for short, is an entity that issues digital certificates. Certifikační autorita slouží jako důvěryhodné třetích stran mezi vlastníka a příjemce certifikátu.A certificate authority acts as a trusted third party between the owner, and the receiver of the certificate. Digitální certifikát certifikuje vlastnictví příjemce certifikátu veřejného klíče.A digital certificate certifies the ownership of a public key by the receiver of the certificate. Řetěz certifikátů důvěryhodnosti funguje tak, že původně vydávání kořenový certifikát, který slouží jako základ pro vztah důvěryhodnosti v všechny certifikáty vydané autoritou.The certificate chain of trust works by initially issuing a root certificate, which is the basis for trust in all certificates issued by the authority. Vlastník později, můžete použít kořenový certifikát vydat další zprostředkujících certifikátů ("listy").Afterwards, the owner can use the root certificate to issue additional intermediate certificates ('leaf' certificates).

Certifikát kořenové certifikační AutorityRoot CA certificate

Certifikát kořenové certifikační Autority je kořenové důvěryhodnosti celý proces.A root CA certificate is the root of trust of the entire process. V produkčních scénářích se tento certifikát certifikační autority obvykle kupuje od důvěryhodné Komerční certifikační autority, jako je Baltimore, VeriSign nebo DigiCert.In production scenarios, this CA certificate is usually purchased from a trusted commercial certificate authority like Baltimore, Verisign, or DigiCert. Pokud máte úplnou kontrolu nad zařízeními, která se připojují k zařízením IoT Edge, je možné použít certifikační autoritu na úrovni podniku.Should you have complete control over the devices connecting to your IoT Edge devices, it's possible to use a corporate level certificate authority. V obou případech se v rámci centra IoT Edge nahoru zobrazí celý řetěz certifikátů, takže zařízení IoT na listech musí důvěřovat kořenovému certifikátu.In either event, the entire certificate chain from the IoT Edge hub up rolls up to it, so the leaf IoT devices must trust the root certificate. Certifikát kořenové certifikační autority můžete uložit buď do úložiště Důvěryhodné kořenové certifikační autority, nebo zadat podrobnosti certifikátu v kódu aplikace.You can store the root CA certificate either in the trusted root certificate authority store, or provide the certificate details in your application code.

Zprostředkující certifikátyIntermediate certificates

V typické výrobní proces pro vytváření zabezpečených zařízení certifikáty kořenové certifikační Autority jsou zřídka se používá přímo, hlavně kvůli riziku úniku nebo odhalení.In a typical manufacturing process for creating secure devices, root CA certificates are rarely used directly, primarily because of the risk of leakage or exposure. Certifikát kořenové certifikační autority vytvoří a digitálně podepíše jeden nebo víc certifikátů Zprostředkující certifikační autority.The root CA certificate creates and digitally signs one or more intermediate CA certificates. Může existovat pouze jeden, nebo může být řetěz tyto zprostředkující certifikáty.There may only be one, or there may be a chain of these intermediate certificates. Scénáře, které by vyžadovaly řetěz zprostředkující certifikáty jsou tyto:Scenarios that would require a chain of intermediate certificates include:

  • Hierarchie oddělení v rámci výrobce.A hierarchy of departments within a manufacturer.

  • Zahrnuté sériově v produkčním prostředí zařízení více společností.Multiple companies involved serially in the production of a device.

  • Zákazník nákupu kořenové certifikační Autority a odvozování podpisový certifikát pro výrobce pro přihlášení zařízení, která využívají jménem daného zákazníka.A customer buying a root CA and deriving a signing certificate for the manufacturer to sign the devices they make on that customer's behalf.

Výrobce v každém případě používá k podepisování certifikátu certifikační Autority zařízení umístí na zařízení end certifikátem zprostředkující certifikační Autority na konci tohoto řetězce.In any case, the manufacturer uses an intermediate CA certificate at the end of this chain to sign the device CA certificate placed on the end device. Obecně tyto zprostředkující certifikáty jsou ve výrobním závodě přísně chráněný.Generally, these intermediate certificates are closely guarded at the manufacturing plant. Jejich procházejí přesně vymezené procesy fyzického a elektronické pro jejich použití.They undergo strict processes, both physical and electronic for their usage.

Certifikát certifikační Autority zařízeníDevice CA certificate

Certifikát certifikační Autority zařízení je generují z a podepíše konečné certifikát zprostředkující certifikační Autority v procesu.The device CA certificate is generated from and signed by the final intermediate CA certificate in the process. Tento certifikát se instaluje do samotného IoT Edge zařízení, nejlépe v zabezpečeném úložišti, jako je modul hardwarového zabezpečení (HSM).This certificate is installed on the IoT Edge device itself, preferably in secure storage such as a hardware security module (HSM). Kromě toho certifikátu certifikační Autority zařízení jednoznačně identifikuje zařízení IoT Edge.In addition, a device CA certificate uniquely identifies an IoT Edge device. V případě IoT Edge může certifikát certifikační autority zařízení vydávat další certifikáty.For IoT Edge, the device CA certificate can issue other certificates. Například certifikát certifikační autority zařízení vystavuje certifikáty zařízení, které se používají k ověřování zařízení ve službě Azure IoT DeviceProvisioning.For example, the device CA certificate issues leaf device certificates that are used to authenticate devices to the Azure IoT Device Provisioning Service.

Úlohy IoT Edge certifikační AutorityIoT Edge Workload CA

IoT Edge Security Manager generuje certifikát certifikační autority pro úlohy, první na straně operátora procesu, při IoT Edge prvním spuštění.The IoT Edge Security Manager generates the workload CA certificate, the first on the "operator" side of the process, when IoT Edge first starts. Tento certifikát je vygenerovaný z a podepsaný certifikátem"zařízení certifikační Autority".This certificate is generated from and signed by the "device CA certificate". Tento certifikát, který je právě jinou zprostředkující podpisový certifikát, se používá pro generování a podepisování jiných certifikátů, používá modul runtime IoT Edge.This certificate, which is just another intermediate signing certificate, is used to generate and sign any other certificates used by the IoT Edge runtime. V dnešní době je to hlavně certifikát serveru IoT Edge hub, který je popsaný v následující části, ale v budoucnu může zahrnovat další certifikáty pro ověřování IoT Edgech součástí.Today, that is primarily the IoT Edge hub server certificate discussed in the following section, but in the future may include other certificates for authenticating IoT Edge components.

Certifikát serveru IoT Edge hubIoT Edge hub server certificate

Certifikát serveru IoT Edge hub je skutečný certifikát prezentovaný koncovým zařízením a modulům pro ověření identity během navazování připojení TLS, které vyžaduje IoT Edge.The IoT Edge hub server certificate is the actual certificate presented to leaf devices and modules for identity verification during establishment of the TLS connection required by IoT Edge. Tento certifikát představuje úplný řetěz podpisových certifikátů sloužící ke generování až kořenový certifikát certifikační Autority, která musí zařízení IoT typu list důvěřovat.This certificate presents the full chain of signing certificates used to generate it up to the root CA certificate, which the leaf IoT device must trust. Při vygenerování správcem zabezpečení IoT Edge se běžný název (CN) tohoto certifikátu IoT Edge hub nastaví na vlastnost hostname v souboru config. yaml po převodu na malý případ.When generated by the IoT Edge Security Manager, the common name (CN), of this IoT Edge hub certificate is set to the 'hostname' property in the config.yaml file after conversion to lower case. To je běžné příčiny záměně s IoT Edge.This is a common source of confusion with IoT Edge.

Dopad na produkčníProduction implications

Může být rozumné otázku "Proč IoT Edge potřebuje"zatížení certifikační Autority"navíc certifikát?A reasonable question might be "why does IoT Edge need the 'workload CA' extra certificate? Nepovedlo se nám použít certifikát pro certifikační autoritu zařízení k přímému vygenerování certifikátu serveru IoT Edge hub? ".Couldn't it use the device CA certificate to directly generate the IoT Edge hub server certificate?". Technicky může.Technically, it could. Účelem tento zprostředkující certifikát "úloha" je však k oddělení obavy mezi výrobce zařízení a zařízení – operátor.However, the purpose of this "workload" intermediate certificate is to separate concerns between the device manufacturer and the device operator. Představte si situaci, kdy je zařízení IoT Edge prodává nebo přenést z jednoho zákazníka na jiný.Imagine a scenario where an IoT Edge device is sold or transferred from one customer to another. Pravděpodobně budete potřebovat certifikát certifikační Autority zařízení dodané výrobcem, chcete-li být neměnitelný.You would likely want the device CA certificate provided by the manufacturer to be immutable. "Úloha" certifikáty specifické pro funkce zařízení však by měl vymazat a znovu vytvořit pro nové nasazení.However, the "workload" certificates specific to operation of the device should be wiped and recreated for the new deployment.

Vzhledem k tomu, že jsou výrobní a provozní procesy oddělené, zvažte následující důsledky při přípravě produkčních zařízení:Because manufacturing and operation processes are separated, consider the following implications when preparing production devices:

  • S jakýkoli proces na základě certifikátů certifikát kořenové certifikační Autority a všechny zprostředkující certifikáty certifikační Autority by měly budou zabezpečené a monitorované během celého procesu zavádění zařízení IoT Edge.With any certificate-based process, the root CA certificate and all intermediate CA certificates should be secured and monitored during the entire process of rolling out an IoT Edge device. Výrobce zařízení IoT Edge by měl mít silné procesy správné úložiště a používání jejich zprostředkující certifikáty.The IoT Edge device manufacturer should have strong processes in place for proper storage and usage of their intermediate certificates. Kromě toho je třeba zařízení certifikát certifikační Autority uchovávat v jako zabezpečené úložiště jako na samotných zařízeních nejlépe modulu hardwarového zabezpečení.In addition, the device CA certificate should be kept in as secure storage as possible on the device itself, preferably a hardware security module.

  • Certifikát serveru IoT Edge hub je prezentován IoT Edgem rozbočovačem a připojenými klientskými zařízeními a moduly.The IoT Edge hub server certificate is presented by IoT Edge hub to the connecting client devices and modules. Běžný název (CN) certifikátu certifikační autority zařízení nesmí být stejný jako název hostitele, který se použije v souboru config. yaml na zařízení IoT Edge.The common name (CN) of the device CA certificate must not be the same as the "hostname" that will be used in config.yaml on the IoT Edge device. Název používaný klienty pro připojení k IoT Edge (například prostřednictvím parametru GatewayHostName připojovacího řetězce nebo příkazu připojit v MQTT) nemůže být stejný jako běžný název, který se používá v certifikátu certifikační autority zařízení.The name used by clients to connect to IoT Edge (for example, via the GatewayHostName parameter of the connection string or the CONNECT command in MQTT) can't be the same as common name used in the device CA certificate. Toto omezení je způsobeno tím, že centrum IoT Edge prezentuje celý řetěz certifikátů pro ověřování klienty.This restriction is because the IoT Edge hub presents its entire certificate chain for verification by clients. Pokud má certifikát serveru IoT Edge hub a certifikát certifikační autority pro zařízení stejný CN, dostanete se do ověřovací smyčky a certifikát se zruší.If the IoT Edge hub server certificate and the device CA certificate both have the same CN, you get in a verification loop and the certificate invalidates.

  • Vzhledem k tomu, že je certifikát CA zařízení používán démonem zabezpečení IoT Edge k vygenerování konečných certifikátů IoT Edge, musí se jednat o podpisový certifikát, což znamená, že má funkce podepisování certifikátů.Because the device CA certificate is used by the IoT Edge security daemon to generate the final IoT Edge certificates, it must itself be a signing certificate, meaning it has certificate signing capabilities. Použití certifikační autority V3 Basic Constraints: true pro certifikát certifikační autority zařízení automaticky nastaví požadované vlastnosti použití klíče.Applying "V3 Basic constraints CA:True" to the device CA certificate automatically sets up the required key usage properties.

Tip

Pokud jste jste už prošly přes nastavení služby IoT Edge jako transparentní brána ve scénáři pro vývoj/testování, pomocí našich "pohodlí skriptů" (viz další část) a používá se stejným názvem hostitele při vytváření certifikátu zařízení certifikační Autority, jako jste to udělali u názvu hostitele v config.yaml , budete vás možná zajímat, proč to šlo.If you've already gone through the setup of IoT Edge as a transparent gateway in a dev/test scenario using our "convenience scripts" (see next section) and used the same host name when creating the device CA certificate as you did for the hostname in config.yaml, you might be wondering why it worked. Ve snaze ke zjednodušení prostředí pro vývojáře skriptů pohodlí připojí ".ca" na konci názvu, které můžete předat do skriptu.In an effort to simplify the developer experience, the convenience scripts appends a ".ca" on the end of the name you pass into the script. Ano, například pokud jste pro obě názvu zařízení ve skriptech a název hostitele v config.yaml "mygateway", nejprve bude převeden na mygateway.ca před používá jako CN certifikátu zařízení certifikační Autority.So, for example, if you used "mygateway" for both your device name in the scripts and hostname in config.yaml, the former will be turned into mygateway.ca before being used as the CN for the device CA cert.

Důsledky pro vývoj/testováníDev/Test implications

Pro vývoj a testování scénářů, společnost Microsoft poskytuje sadu pohodlí skripty pro generování-li se o neprodukční certifikátů vhodných pro IoT Edge ve scénáři transparentní brány.To ease development and test scenarios, Microsoft provides a set of convenience scripts for generating non-production certificates suitable for IoT Edge in the transparent gateway scenario. Příklady, jak tyto skripty fungují, najdete v části nakonfigurovat nastavení zařízení IoT Edge tak, aby fungoval jako transparentní brána.For examples of how the scripts work, see Configure an IoT Edge device to act as a transparent gateway.

Tyto skripty vygenerujete certifikáty, které vycházet ze struktury řetěz certifikátů popsaných v tomto článku.These scripts generate certificates that follow the certificate chain structure explained in this article. Následující příkazy Generovat "kořenový certifikát certifikační Autority" a jedné "certifikát zprostředkující certifikační Autority".The following commands generate the "root CA certificate" and a single "intermediate CA certificate".

./certGen.sh create_root_and_intermediate 
New-CACertsCertChain rsa 

Tyto příkazy, generovat "Certifikační Autorita certifikátu zařízení".Likewise, these commands generate the "Device CA Certificate".

./certGen.sh create_edge_device_ca_certificate "<gateway device name>"
New-CACertsEdgeDeviceCA "<gateway device name>"
  • Názevzařízení> brány předaný do těchto skriptů by neměl být stejný jako parametr HostName v souboru config. yaml. <The <gateway device name> passed into those scripts should not be the same as the "hostname" parameter in config.yaml. Tyto skripty vám pomůžou zabránit jakýmkoli problémům připojením řetězce ". ca" k <> názvu zařízení brány , aby se zabránilo kolizi názvů pro případ, že uživatel nastaví IoT Edge se stejným názvem na obou místech.The scripts help you avoid any issues by appending a ".ca" string to the <gateway device name> to prevent the name collision in case a user sets up IoT Edge using the same name in both places. Je však dobré se vyhnout použití stejného názvu.However, it's good practice to avoid using the same name.

Tip

Připojit zařízení IoT "typu list" zařízení a aplikací, které používají naše sada SDK zařízení IoT pomocí IoT Edge, je nutné přidat volitelný parametr GatewayHostName ke konci připojovací řetězec zařízení.To connect your device IoT "leaf" devices and applications that use our IoT device SDK through IoT Edge, you must add the optional GatewayHostName parameter on to the end of the device's connection string. Při generování certifikátu serveru Edge Hub je založen na verzi nižší malými a velkými písmeny názvu hostitele z config.yaml, proto pro názvy shody a ověřovací certifikát TLS proběhla úspěšně, měli byste zadat parametr GatewayHostName malými písmeny.When the Edge Hub Server Certificate is generated, it is based on a lower-cased version of the hostname from config.yaml, therefore, for the names to match and the TLS certificate verification to succeed, you should enter the GatewayHostName parameter in lower case.

Příklad hierarchie certifikačních autorit IoT EdgeExample of IoT Edge certificate hierarchy

K ilustraci této cestě k certifikátu, je na následujícím snímku obrazovky ze zařízení IoT Edge nastavit jako transparentní brána funkční.To illustrate an example of this certificate path, the following screenshot is from a working IoT Edge device set up as a transparent gateway. OpenSSL se používá pro připojení k centru IoT Edge, ověřování a vystavování certifikátů.OpenSSL is used to connect to the IoT Edge hub, validate, and dump out the certificates.

Snímek obrazovky hierarchii certifikátů na všech úrovních

Zobrazí se hierarchie certifikátů hloubky reprezentované na snímku obrazovky:You can see the hierarchy of certificate depth represented in the screenshot:

Certifikát kořenové certifikační AutorityRoot CA Certificate Azure IoT Hub CA certifikátu pouze TestAzure IoT Hub CA Cert Test Only
Certifikát zprostředkující certifikační AutorityIntermediate CA Certificate Azure IoT Hub zprostředkující certifikát pouze TestAzure IoT Hub Intermediate Cert Test Only
Certifikát certifikační Autority zařízeníDevice CA Certificate iotgateway.CA ("iotgateway" byla předána jako < brány název hostitele > pohodlí skripty)iotgateway.ca ("iotgateway" was passed in as the < gateway host name > to the convenience scripts)
Certifikát pracovního vytížení certifikační AutorityWorkload CA Certificate certifikační autorita iotedge pracovního vytíženíiotedge workload ca
Certifikát serveru IoT Edge hubIoT Edge Hub Server Certificate iotedgegw.Local (shoduje s názvem "hostitele" z config.yaml)iotedgegw.local (matches the 'hostname' from config.yaml)

Další postupNext steps

Vysvětlení modulů Azure IoT EdgeUnderstand Azure IoT Edge modules

Konfigurace zařízení tak, aby fungoval jako transparentní brána IoT EdgeConfigure an IoT Edge device to act as a transparent gateway