Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
IoT Edge 1.5
Important
IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1.4 LTS est en fin de vie depuis le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Cet article fournit des instructions pour configurer une connexion approuvée entre les appareils en aval et les passerelles transparentes IoT Edge. Dans un scénario de passerelle transparente, un ou plusieurs appareils envoient des messages via un appareil de passerelle unique qui gère la connexion à IoT Hub. Dans cet article, les termes passerelle et passerelle IoT Edge signifient qu’un appareil IoT Edge est configuré en tant que passerelle transparente.
Remarque
Un appareil en aval envoie des données directement à Internet ou à des appareils de passerelle (compatibles IoT Edge ou non). Un appareil enfant peut être un appareil en aval ou un appareil de passerelle dans une topologie imbriquée.
Vous configurez une connexion de passerelle transparente en trois étapes. Cet article explique la troisième étape.
Configurez l’appareil de passerelle en tant que serveur afin que les appareils en aval puissent se connecter en toute sécurité. Configurez la passerelle pour recevoir des messages des appareils en aval et les acheminer vers la destination appropriée. Ces étapes sont décrites dans Configurer un appareil IoT Edge en tant que passerelle transparente.
Créez une identité d’appareil pour l’appareil en aval afin qu’il puisse s’authentifier auprès d’IoT Hub. Configurez l’appareil en aval pour envoyer des messages par le biais de l’appareil de passerelle. Ces étapes sont décrites dans Authentifier un appareil en aval auprès d'Azure IoT Hub.
Connectez l’appareil en aval à l’appareil de passerelle et commencez à envoyer des messages.
Cet article explique les composants de connexion d’appareil en aval, tels que :
- Notions de base de la sécurité de la couche de transport (TLS) et des certificats
- Bibliothèques TLS qui fonctionnent sur différents systèmes d’exploitation et gèrent les certificats différemment
Vous parcourez les exemples Azure IoT dans votre langue préférée pour que votre appareil envoie des messages à la passerelle.
Prérequis
Acquérir les éléments suivants pour préparer votre appareil en aval :
Un appareil en aval.
Cet appareil peut être n’importe quelle application ou plateforme avec une identité créée dans Azure IoT Hub. Dans de nombreux cas, les applications utilisent le Kit de développement logiciel (SDK) d’appareil Azure IoT. Un appareil en aval peut également être une application s’exécutant sur l’appareil de passerelle IoT Edge.
Plus tard, cet article vous montre comment connecter un appareil IoT en tant qu’appareil en aval. Si vous voulez utiliser un appareil IoT Edge en aval, consultez Connecter ensemble des appareils Azure IoT Edge pour créer une hiérarchie (périphérie imbriquée).
Un fichier de certificat de l’autorité de certification racine.
Ce fichier est utilisé pour générer le certificat d’autorité de certification Edge dans Configurer un appareil IoT Edge pour agir en tant que passerelle transparente et est disponible sur votre appareil en aval.
Votre appareil en aval utilise ce certificat pour vérifier l’identité de l’appareil de passerelle. Ce certificat approuvé assure la sécurité des connexions TLS (Transport Layer Security) vers l'appareil de passerelle. Pour les détails d'utilisation, consultez Présentation du certificat d'autorité de certification racine.
Une chaîne de connexion modifiée qui pointe vers l’appareil de passerelle.
Pour savoir comment modifier votre chaîne de connexion, consultez Authentifier un appareil en aval sur Azure IoT Hub.
Remarque
Les appareils IoT inscrits auprès d'IoT Hub peuvent utiliser des jumeaux de module pour isoler des processus, matériels ou fonctions différents sur un même appareil. Les passerelles IoT Edge prennent en charge les connexions de module en aval à l’aide de l’authentification par clé symétrique, mais pas l’authentification par certificat X.509.
Comprendre les principes de base du protocole TLS et des certificats
La connexion sécurisée d’appareils en aval à IoT Edge est similaire à d’autres communications client et serveur sécurisées sur Internet. Un client et un serveur de communiquent en toute sécurité sur Internet à l’aide du protocole Transport layer security (TLS). TLS utilise des constructions d’infrastructure à clé publique standard (PKI) appelées certificats. TLS est une spécification détaillée qui couvre de nombreuses rubriques relatives à la sécurisation de deux points de terminaison. Cette section récapitule les concepts dont vous avez besoin pour connecter en toute sécurité des appareils à une passerelle IoT Edge.
Lorsqu’un client se connecte à un serveur, le serveur présente une chaîne de certificats appelée chaîne de certificats de serveur. Une chaîne de certificats possède généralement un certificat d’autorité de certification racine, un ou plusieurs certificats d’autorité de certification intermédiaires et le certificat du serveur. Le client approuve le serveur en vérifiant par chiffrement l’intégralité de la chaîne de certificats du serveur. Ce processus est appelé validation de la chaîne de serveur. Le client défie également le serveur de prouver qu’il dispose de la clé privée pour le certificat de serveur, appelé preuve de possession. Ensemble, la validation de la chaîne de serveurs et la preuve de possession sont appelées authentification du serveur. Pour valider une chaîne de certificats de serveur, le client a besoin d’une copie du certificat d’autorité de certification racine utilisé pour émettre le certificat du serveur. Lors de la connexion à des sites web, les navigateurs sont préconfigurés avec des certificats d’autorité de certification courants, de sorte que le processus client est transparent.
Lorsqu’un appareil se connecte à Azure IoT Hub, l’appareil est client et le service cloud IoT Hub est le serveur. Le service cloud IoT Hub utilise un certificat d’autorité de certification racine appelé Baltimore CyberTrust Root, qui est publiquement disponible et largement utilisé. Étant donné que le certificat d’autorité de certification IoT Hub est déjà installé sur la plupart des appareils, de nombreuses implémentations TLS (OpenSSL, Schannel, LibreSSL) l’utilisent automatiquement pendant la validation du certificat de serveur. Toutefois, un appareil qui se connecte à IoT Hub peut rencontrer des problèmes lors de la connexion à une passerelle IoT Edge.
Lorsqu’un appareil se connecte à une passerelle IoT Edge, l’appareil en aval est le client et l’appareil de passerelle est le serveur. Azure IoT Edge vous permet de créer des chaînes de certificats de passerelle en fonction des besoins. Vous pouvez utiliser un certificat d’autorité de certification publique, comme Baltimore, ou un certificat d’autorité de certification racine auto-signé (ou interne). Les certificats d’autorité de certification publique ont souvent un coût, de sorte qu’ils sont généralement utilisés dans les scénarios de production. Les certificats d’autorité de certification auto-signés sont plus adaptés au développement et aux tests. Les certificats de démonstration sont des certificats d’autorité de certification racine auto-signés.
Lorsque vous utilisez un certificat d’autorité de certification racine auto-signé pour une passerelle IoT Edge, vous devez l’installer ou le fournir à tous les appareils en aval qui se connectent à la passerelle.
Pour en savoir plus sur les certificats IoT Edge et les implications de production, consultez les détails de l’utilisation des certificats IoT Edge.
Fournir le certificat d’autorité de certification racine
Pour vérifier les certificats de l’appareil de passerelle, l’appareil en aval a besoin de sa propre copie du certificat d’autorité de certification racine. Si vous utilisez les scripts dans le référentiel Git IoT Edge pour créer des certificats de test, le certificat d’autorité de certification racine est appelé azure-iot-test-only.root.ca.cert.pem.
Si ce n’est déjà fait, déplacez ce fichier de certificat vers n’importe quel répertoire sur votre appareil en aval. Déplacez le fichier en installant le certificat d’autorité de certification dans le magasin de certificats du système d’exploitation ou en référençant le certificat dans les applications qui utilisent les kits sdk Azure IoT.
Utilisez un service comme Azure Key Vault ou un outil tel que le protocole de copie sécurisée pour déplacer le fichier de certificat.
Installer des certificats sur le système d’exploitation
Après avoir copié le certificat d’autorité de certification racine sur l’appareil en aval, assurez-vous que les applications qui se connectent à la passerelle peuvent accéder au certificat.
Installez le certificat d’autorité de certification racine dans le magasin de certificats du système d’exploitation afin que la plupart des applications puissent l’utiliser. Certaines applications, comme Node.js, n’utilisent pas le magasin de certificats du système d’exploitation et utilisent plutôt le magasin de certificats interne du runtime Node. Si vous ne pouvez pas installer le certificat au niveau du système d’exploitation, accédez à la section Utiliser des certificats avec des kits SDK Azure IoT .
Installez le certificat d’autorité de certification racine sur Ubuntu ou Windows.
Utilisez les commandes suivantes pour installer un certificat d’autorité de certification sur un hôte Ubuntu. Cet exemple utilise le certificat azure-iot-test-only.root.ca.cert.pem à partir des articles prérequis et suppose que vous avez copié le certificat vers un emplacement sur l’appareil en aval.
sudo cp <file 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
Une fois terminé, vous voyez un certificat de mise à jour dans /etc/ssl/certs... 1 ajouté, 0 supprimé ; message terminé .
Utiliser des certificats avec les kits de développement logiciel Azure IoT
Kits Azure IoT SDK se connectent à un appareil IoT Edge à l’aide de simples exemples d’applications. L'objectif des exemples est de connecter le client de l'appareil et d'envoyer des données de télémétrie de l'appareil à la passerelle, puis de fermer la connexion et de quitter.
Avant d’utiliser les échantillons au niveau de l’application, il faut se procurer les éléments suivants :
La chaîne de connexion de votre IoT Hub, provenant de votre appareil en aval, a été modifiée pour pointer vers l’appareil passerelle.
Tous les certificats requis pour authentifier votre appareil en aval auprès d’IoT Hub. Pour plus d’informations, consultez Authentifier un appareil en aval auprès d’Azure IoT Hub.
Le chemin complet vers le certificat d’autorité de certification racine que vous avez copié et enregistré quelque part sur votre appareil en aval.
Par exemple :
<file path>/azure-iot-test-only.root.ca.cert.pem.
Vous êtes maintenant prêt(e) à utiliser des certificats avec un échantillon dans la langue de votre choix :
Cette section fournit un exemple d’application pour connecter un client d’appareil Azure IoT Node.js à une passerelle IoT Edge. Pour les applications Node.js, vous devez installer le certificat d’autorité de certification racine au niveau de l’application, comme indiqué ici. Les applications Node.js n’utilisent pas le magasin de certificats du système.
- Récupérez l’exemple pour edge_downstream_device.js à partir du référentiel d’exemples Azure IoT device SDK pour Node.js.
- Assurez-vous que vous remplissez toutes les conditions préalables pour exécuter l’exemple en passant en revue le fichier readme.md.
- Dans le fichier edge_downstream_device.js, mettez à jour les variables connectionString et edge_ca_cert_path.
- Consultez la documentation du Kit de développement logiciel pour obtenir des instructions sur la façon d’exécuter l’exemple sur votre appareil.
Pour comprendre l’exemple que vous exécutez, l’extrait de code suivant explique comment le SDK client lit le fichier de certificat et l’utilise pour établir une connexion TLS sécurisée :
// 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'),
};
Test de connexion à la passerelle
Exécutez cet exemple de commande sur l’appareil en aval pour tester qu’il peut se connecter à l’appareil de passerelle :
openssl s_client -connect mygateway.contoso.com:8883 -CAfile <CERTDIR>/certs/azure-iot-test-only.root.ca.cert.pem -showcerts
Cette commande vérifie la connexion via MQTTS (port 8883). Si vous utilisez un autre protocole, ajustez la commande pour AMQPS (5671) ou HTTPS (443).
La sortie de cette commande peut être longue et inclut des informations sur tous les certificats de la chaîne. Si la connexion réussit, vous voyez une ligne comme Verification: OK ou Verify return code: 0 (ok).
Résoudre les problèmes de connexion à la passerelle
Si votre connexion d’appareil en aval à son appareil de passerelle est instable, tenez compte de ces questions pour vous aider à résoudre le problème.
- Le nom d’hôte de passerelle de la chaîne de connexion est-il identique à celui qui figure dans le fichier config IoT Edge de l’appareil de passerelle ?
- Le nom d'hôte de la passerelle peut-il être résolu en adresse IP ? Corrigez les connexions intermittentes à l’aide du DNS ou ajoutez une entrée de fichier hôte sur l’appareil en aval.
- Les ports de communication de votre pare-feu sont-ils ouverts ? Vérifiez que les ports de protocole requis (MQTTS :8883, AMQPS :5671, HTTPS :433) sont ouverts entre l’appareil en aval et l’appareil IoT Edge transparent.
Étapes suivantes
Découvrez comment IoT Edge étend les fonctionnalités hors connexion aux appareils en aval.