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.
Les appareils IoT Edge ont besoin de certificats pour une communication sécurisée entre le runtime, les modules et tous les appareils en aval. Si vous n’avez pas d’autorité de certification pour créer les certificats requis, utilisez des certificats de démonstration pour tester les fonctionnalités IoT Edge dans votre environnement de test. Cet article explique les scripts de génération de certificats que IoT Edge fournit pour les tests.
Avertissement
Ces certificats expirent dans 30 jours et vous ne devez pas les utiliser dans un scénario de production.
Créez des certificats sur n’importe quel ordinateur, puis copiez-les sur votre appareil IoT Edge, ou générez les certificats directement sur l’appareil IoT Edge.
Prérequis
Utilisez un ordinateur de développement sur lequel Git est installé.
Télécharger les scripts de certificat de test et configurer le répertoire de travail
Le référentiel IoT Edge sur GitHub comprend des scripts de génération de certificat que vous pouvez utiliser pour créer des certificats de démonstration. Cette section fournit des instructions pour préparer les scripts à exécuter sur votre ordinateur, sous Windows ou Linux.
Pour créer des certificats de démonstration sur un appareil Windows, installez OpenSSL, puis clonez les scripts de génération et configurez-les pour qu’ils s’exécutent localement dans PowerShell.
Installer OpenSSL
Installez OpenSSL pour Windows sur l’appareil que vous utilisez pour générer les certificats. Si OpenSSL est déjà installé, vérifiez que openssl.exe est disponible dans votre variable d’environnement PATH.
Vous pouvez installer OpenSSL de différentes façons :
Plus facile : téléchargez et installez tous les fichiers binaires OpenSSL de fournisseurs tiers, par exemple, à partir d’OpenSSL sur SourceForge. Ajoutez le chemin d’accès complet à openssl.exe à votre variable d’environnement PATH.
Recommandé: Téléchargez le code source OpenSSL et générez les fichiers binaires sur votre appareil ou utilisez vcpkg. Les instructions suivantes utilisent vcpkg pour télécharger le code source, compiler et installer OpenSSL sur votre appareil Windows.
Accédez au répertoire où vous souhaitez installer vcpkg. Suivez les instructions pour télécharger et installer vcpkg.
Une fois vcpkg installé, exécutez la commande suivante à partir d’une invite PowerShell afin d’installer le package OpenSSL pour Windows x64. L’installation prend généralement 5 minutes environ.
.\vcpkg install openssl:x64-windowsAjoutez
<vcpkg path>\installed\x64-windows\tools\opensslà votre variable d’environnement PATH afin que le fichier openssl.exe soit appelable.
Préparer les scripts dans PowerShell
Le dépôt Git Azure IoT Edge contient des scripts permettant de générer des certificats de test. Dans cette section, vous clonez le référentiel IoT Edge et exécutez les scripts.
Ouvrez PowerShell en mode administrateur.
Clonez le référentiel Git IoT Edge, qui contient des scripts pour générer des certificats de démonstration. Utilisez la commande
git cloneou téléchargez le fichier zip.git clone https://github.com/Azure/iotedge.gitCréez un répertoire et copiez les scripts de certificat là-bas. Tous les fichiers de certificat et de clé sont créés dans ce répertoire.
mkdir wrkdir cd .\wrkdir\ cp ..\iotedge\tools\CACertificates\*.cnf . cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .Si vous avez téléchargé le référentiel en tant que fichier ZIP, le nom du dossier est
iotedge-masteret le reste du chemin est le même.Définissez la stratégie d’exécution PowerShell pour exécuter les scripts.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUserImportez les fonctions utilisées par les scripts dans l’espace de noms global de PowerShell.
. .\ca-certs.ps1La fenêtre PowerShell affiche un avertissement indiquant que les certificats générés par ce script sont uniquement à des fins de test et ne doivent pas être utilisés dans les scénarios de production.
Vérifiez qu’OpenSSL est correctement installé et qu’il n’y aura pas de collisions de noms avec des certificats existants. Si des problèmes se produisent, la sortie du script doit décrire comment les corriger sur votre système.
Test-CACertsPrerequisites
Créer un certificat d’autorité de certification racine
Exécutez ce script pour générer un certificat d’autorité de certification racine. Vous avez besoin de ce certificat pour chaque étape de cet article.
Utilisez le certificat d’autorité de certification racine pour créer d’autres certificats de démonstration pour tester un scénario IoT Edge. Vous pouvez utiliser le même certificat d’autorité de certification racine pour créer des certificats de démonstration pour plusieurs appareils IoT Edge ou appareils en aval.
Si vous avez déjà un certificat d’autorité de certification racine dans votre dossier de travail, n’en créez pas un nouveau. La création d’un certificat d’autorité de certification racine remplace l’ancienne et tous les certificats en aval créés à partir de l’ancien certificat arrêtent de fonctionner. Si vous avez besoin de plusieurs certificats d’autorité de certification racine, gérez-les dans des dossiers distincts.
Accédez au répertoire
wrkdirde travail où vous placez les scripts de génération de certificats.Créez le certificat d’autorité de certification racine et signez un certificat intermédiaire. Les certificats sont placés dans votre répertoire de travail.
New-CACertsCertChain rsaCe script crée plusieurs fichiers de certificat et de clé. Lorsque les articles demandent le certificat d’autorité de certification racine, utilisez ce fichier :
certs\azure-iot-test-only.root.ca.cert.pem
Vous avez besoin de ce certificat avant de créer d’autres certificats pour vos appareils IoT Edge et appareils en aval, comme décrit dans les sections suivantes.
Créer un certificat d’identité pour l’appareil IoT Edge
Les certificats d’identité d’appareil IoT Edge sont utilisés pour approvisionner des appareils IoT Edge si vous choisissez d’utiliser une authentification par certificat X.509. Si vous utilisez une clé symétrique pour l’authentification sur IoT Hub ou DPS, ces certificats ne sont pas nécessaires et vous pouvez donc ignorer cette section.
Ces certificats fonctionnent, que vous utilisiez l’approvisionnement manuel ou l’approvisionnement automatique via le Service IoT Hub Device Provisioning (DPS).
Les certificats d’identité d’appareil sont placés dans la section Approvisionnement du fichier config sur l’appareil IoT Edge.
Accédez au répertoire de travail
wrkdirqui contient les scripts de génération de certificats et le certificat de l'autorité de certification racine.Créez la clé privée et le certificat d'identité d’appareil IoT Edge avec la commande suivante :
New-CACertsEdgeDeviceIdentity "<device-id>"Le nom que vous entrez pour cette commande est l'ID de l'appareil pour l'appareil IoT Edge dans l'IoT Hub.
La nouvelle commande d’identité d’appareil crée plusieurs fichiers de certificat et de clé :
Catégorie Fichier Descriptif Certificat d’identité de l’appareil certs\iot-edge-device-identity-<device-id>.cert.pemSigné par le certificat intermédiaire généré précédemment. Contient uniquement le certificat d’identité. À spécifier dans le fichier de configuration pour l’inscription individuelle DPS ou l’approvisionnement IoT Hub. Certificat de chaîne complète certs\iot-edge-device-identity-<device-id>-full-chain.cert.pemContient la chaîne de certificats complète, y compris le certificat intermédiaire. À spécifier dans le fichier de configuration pour IoT Edge à présenter à DPS pour l’approvisionnement d’inscription de groupe. Clé privée private\iot-edge-device-identity-<device-id>.key.pemClé privée associée au certificat d’identité de l’appareil. Doit être spécifiée dans le fichier de configuration tant que vous utilisez une sorte d’authentification par certificat (empreinte ou autorité de certification) pour DPS ou IoT Hub.
Créer des certificats d’autorité de certification IoT Edge
Vous avez besoin de ces certificats pour les scénarios de passerelle , car le certificat d’autorité de certification Edge permet à l’appareil IoT Edge de vérifier son identité sur les appareils en aval. Ignorez cette section si vous ne connectez pas d’appareils en aval à IoT Edge.
Le certificat d’autorité de certification Edge crée également des certificats pour les modules s’exécutant sur l’appareil, mais le runtime IoT Edge peut créer des certificats temporaires si l’autorité de certification Edge n’est pas configurée. Placez les certificats CA Edge dans la section Edge CA du fichier config.toml sur l’appareil IoT Edge. Pour plus d’informations, consultez Comprendre comment Azure IoT Edge utilise les certificats.
Accédez au répertoire de travail
wrkdirqui contient les scripts de génération de certificat et le certificat d’autorité de certification racine.Créez la clé privée et le certificat d’autorité de certification IoT Edge avec la commande suivante. Entrez un nom pour le certificat CA. N’utilisez pas le même nom que le paramètre nom d’hôte dans le fichier de configuration ou l’ID de l’appareil dans IoT Hub pour la commande New-CACertsEdgeDevice .
New-CACertsEdgeDevice "<CA cert name>"Cette commande crée plusieurs fichiers de certificat et de clé. Copiez le certificat et la paire de clés suivants sur l’appareil IoT Edge et référencez-les dans le fichier de configuration :
certs\iot-edge-device-<CA cert name>-full-chain.cert.pemprivate\iot-edge-device-<CA cert name>.key.pem
Créer des certificats d’appareils en aval
Ces certificats sont requis pour configurer un appareil IoT en aval pour un scénario de passerelle et lorsque vous souhaitez utiliser l’authentification X.509 avec IoT Hub ou DPS. Si vous souhaitez utiliser l’authentification par clé symétrique, vous ne devez créer aucun certificat pour l’appareil en aval et pouvez ignorer cette section.
Il existe deux façons d’authentifier un appareil IoT à l’aide de certificats X.509 : à l’aide de certificats auto-signés ou à l’aide de certificats signés par une autorité de certification.
- Pour l’authentification par certificat X.509 autosigné, parfois appelée authentification par empreinte, vous devez créer des certificats et les placer sur votre appareil IoT. Ces certificats contiennent une empreinte numérique que vous partagez avec IoT Hub pour l’authentification.
- Pour l’authentification par certificat X.509 signés par l’autorité de certification, vous avez besoin d’un certificat d’autorité de certification racine inscrit dans IoT Hub ou DPS, que vous utilisez pour signer les certificats de votre appareil IoT. Tous les appareils qui utilisent un certificat émis par le certificat d’autorité de certification racine ou un de ses certificats intermédiaires peuvent s’authentifier tant que la chaîne complète est présentée par l’appareil.
Les scripts de génération de certificats peuvent vous aider à créer des certificats de démonstration pour tester l’un de ces scénarios d’authentification.
Certificats auto-signés
Lorsque vous authentifiez un appareil IoT avec des certificats auto-signés, vous devez créer des certificats d’appareil basés sur le certificat d’autorité de certification racine de votre solution. Ensuite, vous récupérez une « empreinte » hexadécimale à partir des certificats à fournir à IoT Hub. Votre appareil IoT a également besoin d’une copie de ses certificats d’appareil afin qu’il puisse s’authentifier auprès de IoT Hub.
Accédez au répertoire de travail
wrkdirqui contient les scripts de génération de certificat et le certificat d’autorité de certification racine.Créez deux certificats pour l’appareil en aval (un primaire et un secondaire). Une convention d’affectation de noms pratique consiste à créer les certificats avec le nom de l’appareil IoT suivi de l’étiquette primaire ou secondaire. Par exemple :
New-CACertsDevice "<device ID>-primary" New-CACertsDevice "<device ID>-secondary"Cette commande de script crée plusieurs fichiers de certificats et de clés. Le certificat et les paires de clés suivants doivent être copiés sur l’appareil IoT en aval et référencés dans les applications qui se connectent à IoT Hub :
certs\iot-device-<device ID>-primary-full-chain.cert.pemcerts\iot-device-<device ID>-secondary-full-chain.cert.pemcerts\iot-device-<device ID>-primary.cert.pemcerts\iot-device-<device ID>-secondary.cert.pemcerts\iot-device-<device ID>-primary.cert.pfxcerts\iot-device-<device ID>-secondary.cert.pfxprivate\iot-device-<device ID>-primary.key.pemprivate\iot-device-<device ID>-secondary.key.pem
Récupérez l’empreinte digitale SHA1 (appelée empreinte dans les contextes IoT Hub) à partir de chaque certificat. L’empreinte est une chaîne hexadécimale d’une longueur de 40 caractères. Pour afficher le certificat et trouver l’empreinte, utilisez la commande openssl suivante :
Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).ThumbprintExécutez cette commande deux fois, une fois pour le certificat principal et une fois pour le certificat secondaire. Vous fournissez des empreintes pour les deux certificats lorsque vous inscrivez un nouvel appareil IoT à l’aide de certificats X.509 auto-signés.
Certificats signés par une autorité de certification
Lorsque vous authentifiez un appareil IoT avec des certificats signés par une autorité de certification, vous devez charger le certificat d’autorité de certification racine de votre solution vers IoT Hub. Utilisez le même certificat d’autorité de certification racine pour créer des certificats d’appareil à placer sur votre appareil IoT afin qu’il puisse s’authentifier sur IoT Hub.
Les certificats de cette section concernent les étapes de la série de didacticiels sur le certificat IoT Hub X. 509. Consultez Tutoriel : Comprendre le chiffrement à clé publique et l’infrastructure à clé publique X.509 pour la présentation de cette série.
Chargez le fichier de certificat d’autorité de certification racine à partir de votre répertoire de travail,
certs\azure-iot-test-only.root.ca.cert.pem, vers votre IoT Hub.Si la vérification automatique n’est pas sélectionnée, utilisez le code fourni dans le portail Azure pour vérifier que vous êtes propriétaire de ce certificat d’autorité de certification racine.
New-CACertsVerificationCert "<verification code>"Créez une chaîne de certificats pour votre appareil en aval. Utilisez le même ID d’appareil que celui dans lequel l’appareil est inscrit auprès d’IoT Hub.
New-CACertsDevice "<device id>"Cette commande de script crée plusieurs fichiers de certificats et de clés. Le certificat et les paires de clés suivants doivent être copiés sur l’appareil IoT en aval et référencés dans les applications qui se connectent à IoT Hub :
certs\iot-device-<device id>.cert.pemcerts\iot-device-<device id>.cert.pfxcerts\iot-device-<device id>-full-chain.cert.pemprivate\iot-device-<device id>.key.pem