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.
Les certificats X.509 sont des documents numériques qui représentent un utilisateur, un ordinateur, un service ou un appareil. Une autorité de certification (CA), une autorité d’enregistrement subordonnée ou une autorité d’enregistrement délivre des certificats X.509. Les certificats contiennent la clé publique de la matière du certificat. Ils ne contiennent pas la clé privée du sujet, qui doit être stockée en toute sécurité. La RFC 5280 documente les certificats de clé publique, y compris leurs champs et extensions. Les certificats à clé publique sont signés numériquement et contiennent généralement les informations suivantes :
- Informations sur la matière du certificat
- La clé publique qui correspond à la clé privée du sujet
- Informations sur l’autorité émettrice
- Les algorithmes de chiffrement et/ou de signature numérique pris en charge
- Informations pour déterminer le statut de révocation et de validité du certificat
Champs de certificat
Il existe trois versions incrémentales de la norme de certificat X.509, et chaque version suivante ajoutait des champs de certificat à la norme :
- La version 1 (v1), publiée en 1988, suit la norme initiale X.509 pour les certificats.
- La version 2 (v2), publiée en 1993, ajoute deux champs aux champs inclus dans la version 1.
- La version 3 (v3), publiée en 2008, représente la version actuelle de la norme X.509. Cette version ajoute la prise en charge des extensions de certificat.
Cette section est destinée à servir de référence générale pour les champs de certificat et les extensions de certificat disponibles dans les certificats X.509. Pour plus d’informations sur les champs de certificat et les extensions de certificat, y compris les types de données, les contraintes et d’autres détails, consultez la spécification RFC 5280 .
Champs version 1
Le tableau suivant décrit les champs de certificat de la version 1 pour les certificats X.509. Tous les champs inclus dans ce tableau sont disponibles dans les versions ultérieures des certificats X.509.
| Name | Description |
|---|---|
| Version | Un entier qui identifie le numéro de version du certificat. |
| Numéro de série | Un entier représentant le numéro unique pour chaque certificat délivré par une autorité de certification (AC). |
| Signature | L’identifiant de l’algorithme cryptographique utilisé par l’AC pour signer le certificat. La valeur inclut à la fois l’identifiant de l’algorithme et tout paramètre optionnel utilisé par cet algorithme, le cas échéant. |
| Émetteur | Le nom distingué (DN) de l’autorité émettrice délivrant le certificat. |
| Validité | La période inclusive pour laquelle le certificat est valide. |
| Sujet | Le nom distingué (DN) du sujet du certificat. |
| Objet Informations de clé publique | La clé publique détenue par le sujet du certificat. |
Champs version 2
Le tableau suivant décrit les champs ajoutés pour la Version 2, contenant des informations sur l’émetteur du certificat. Cependant, ces champs sont rarement utilisés. Tous les champs inclus dans ce tableau sont disponibles dans les versions ultérieures des certificats X.509.
| Name | Description |
|---|---|
| ID unique de l’émetteur | Un identifiant unique représentant la CA émettrice, telle que définie par la CA émettrice. |
| ID unique du sujet | Un identifiant unique représentant le sujet du certificat, tel que défini par l’autorité émettrice. |
Champs de la version 3
Le tableau suivant décrit le champ ajouté pour la version 3, représentant une collection d’extensions de certificats X.509.
| Name | Description |
|---|---|
| Extensions | Un ensemble d’extensions de certificats standards et spécifiques à Internet. Pour plus d’informations sur les extensions de certificat disponibles pour les certificats X.509 v3, voir Extensions de certificat. |
Extensions de certificats
Les extensions de certificat, introduites avec la version 3, fournissent des méthodes pour associer davantage d’attributs aux utilisateurs ou aux clés publiques et pour gérer les relations entre les autorités de certification. Pour plus d’informations sur les extensions de certificat, voir la section Extensions de certificat de la spécification RFC 5280 .
Extensions standard
La norme X.509 définit les extensions incluses dans cette section, destinées à une utilisation dans l’infrastructure à clé publique Internet (PKI).
| Name | Description |
|---|---|
| Identificateur de clé d’autorité | Un identifiant représentant soit le sujet du certificat et le numéro de série du certificat d’AC qui a émis ce certificat, soit un hachage de la clé publique de l’AC émettrice. |
| Identificateur de clé d’objet | Un hachage de la clé publique du certificat actuel. |
| Utilisation des clés | Une valeur bitmap qui définit les services pour lesquels un certificat peut être utilisé. |
| Période d’utilisation de la clé privée | La période de validité de la partie clé privée d’une paire de clés. |
| Politiques de certificat | Une collection d’informations de police, utilisée pour valider la matière du certificat. |
| Cartographies politiques | Un ensemble de correspondances de politiques, chacune associant une politique dans une organisation à une autre organisation. |
| Autre nom de l’objet | Une collection de noms alternatifs pour le sujet. |
| Nom alternatif de l’émetteur | Un ensemble de noms alternatifs pour l’autorité émettrice. |
| Attributs du répertoire sujet | Une collection d’attributs provenant d’un répertoire X.500 ou LDAP. |
| Contraintes de base | Un ensemble de contraintes permettant au certificat de désigner s’il est délivré à une CA, ou à un utilisateur, ordinateur, appareil ou service. Cette extension inclut également une contrainte de longueur de chemin qui limite le nombre de CA subordonnées pouvant exister. |
| Contraintes de nom | Un ensemble de contraintes qui déterminent quels espaces de noms sont autorisés dans un certificat délivré par l’AC. |
| Contraintes de politique | Un ensemble de contraintes pouvant être utilisées pour interdire les correspondances de politiques entre les autorités de distribution. |
| Utilisation étendue des clés | Un ensemble de valeurs de but de clé indiquant comment la clé publique d’un certificat peut être utilisée, au-delà des objectifs identifiés dans l’extension d’utilisation de clés . |
| CRL Distribution Points | Une collection d’URL où la liste de révocation de certificats de base (CRL) est publiée. |
| Inhiber toute politique | Entrave l’utilisation de l’OID All Issuance Policies (2.5.29.32.0) dans les certificats CA subordonnés |
| CRL le plus frais | Cette extension, également connue sous le nom de point de distribution Delta CRL, contient une ou plusieurs URL où le delta CRL de la CA émettrice est publié. |
Extensions Internet privées
Les prolongations incluses dans cette section sont similaires aux extensions standard, et peuvent être utilisées pour orienter les demandes vers des informations en ligne concernant l’autorité de certification émettrice ou le sujet du certificat.
| Name | Description |
|---|---|
| Accès à l’information par l’autorité | Un ensemble d’entrées décrivant le format et l’emplacement des informations supplémentaires fournies par l’autorité émettrice. |
| Accès aux informations sujets | Une collection d’entrées décrivant le format et l’emplacement des informations supplémentaires fournies par le sujet du certificat. |
Formats de certificat
Les certificats peuvent être enregistrés sous différents formats. Azure IoT Hub authentification utilise généralement les formats Privacy-Enhanced Mail (PEM) et Personal Information Exchange (PFX). Le tableau suivant décrit les fichiers et formats couramment utilisés pour représenter les certificats.
| Format | Description |
|---|---|
| Certificat binaire | Un certificat binaire de formulaire brut utilisant l’encodage ASN.1 selon les règles d’encodage distinguées (DER). |
| Format ASCII PEM | Un fichier de certificat PEM (.pem) contient un certificat encodé en Base64 commençant par -----BEGIN CERTIFICATE----- et se terminant par -----END CERTIFICATE-----. L’un des formats les plus courants pour les certificats X.509, le format PEM est exigé par IoT Hub lors du téléchargement de certains certificats, tels que les certificats d’appareil. |
| Clé PEM ASCII | Contient une clé DER encodée en Base64, éventuellement avec plus de métadonnées sur l’algorithme utilisé pour la protection par mot de passe. |
| Certificat PKCS #7 | Un format conçu pour le transport de données signées ou chiffrées. Cela peut inclure toute la chaîne de certificats. La RFC 2315 définit ce format. |
| Clé PKCS #8 | Le format d’un magasin privé de clés. La RFC 5208 définit ce format. |
| Clé et certificat PKCS #12 | Un format complexe capable de stocker et protéger une clé ainsi que toute la chaîne de certificats. Il est couramment utilisé avec une extension .p12 ou .pfx. PKCS #12 est synonyme du format PFX. La RFC 7292 définit ce format. |
Certificats auto-signés
Vous pouvez authentifier un appareil à votre hub IoT à des fins de test en utilisant deux certificats auto-signés. Ce type d’authentification est parfois appelé authentification par empreintes digitales car les certificats sont identifiés par des valeurs de hachage calculées appelées empreintes digitales ou empreintes digitales. Ces valeurs de hachage calculées sont utilisées par IoT Hub pour authentifier vos appareils.
Important
Nous vous recommandons d’utiliser des certificats signés par une autorité de certification (CA) émettrice, même à des fins de test. N’utilisez jamais de certificats auto-signés en production.
Créer un certificat auto-signé
Vous pouvez utiliser OpenSSL pour créer des certificats auto-signés. Les étapes suivantes vous montrent comment exécuter des commandes OpenSSL dans un shell bash pour créer un certificat auto-signé et récupérer une empreinte digitale de certificat pouvant être utilisée pour authentifier votre appareil dans IoT Hub.
Note
Si vous souhaitez utiliser des certificats auto-signés pour les tests, vous devez créer deux certificats pour chaque appareil.
Exécutez la commande suivante pour générer une clé privée et créer un fichier clé privée (.key) codé en PEM, remplaçant les placeholders suivants par leurs valeurs correspondantes. La clé privée générée par la commande suivante utilise l’algorithme RSA avec chiffrement 2048 bits.
{KeyFile}. Le nom de votre fichier de clé privée.
openssl genpkey -out {KeyFile} -algorithm RSA -pkeyopt rsa_keygen_bits:2048Exécutez la commande suivante pour générer une demande de signature de certificat PKCS #10 (CSR) et créez un fichier CSR (.csr), remplaçant les espaces réservés suivants par leurs valeurs correspondantes. Assurez-vous de spécifier l’ID de l’appareil IoT pour votre certificat auto-signé lorsque vous le demandez.
{KeyFile}. Le nom de votre fichier de clé privée.
{CsrFile}. Le nom de votre dossier CSR.
{DeviceID}. Le nom de votre appareil IoT.
openssl req -new -key {KeyFile} -out {CsrFile} Country Name (2 letter code) [XX]:. State or Province Name (full name) []:. Locality Name (eg, city) [Default City]:. Organization Name (eg, company) [Default Company Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server hostname) []:{DeviceID} Email Address []:. Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:. An optional company name []:.Exécutez la commande suivante pour examiner et vérifier votre CSR, en remplaçant les espaces réservés suivants par leurs valeurs correspondantes.
{CsrFile}. Le nom de votre dossier de certificat.
openssl req -text -in {CsrFile} -verify -nooutExécutez la commande suivante pour générer un certificat auto-signé et créez un fichier de certificat encodé en PEM (.crt), remplaçant les placeholders suivants par leurs valeurs correspondantes. La commande convertit et signe votre CSR avec votre clé privée, générant un certificat auto-signé qui expire dans 365 jours.
{KeyFile}. Le nom de votre fichier de clé privée.
{CsrFile}. Le nom de votre dossier CSR.
{Fichier CRT}. Le nom de votre dossier de certificat.
openssl x509 -req -days 365 -in {CsrFile} -signkey {KeyFile} -out {CrtFile}Exécutez la commande suivante pour récupérer l’empreinte digitale du certificat, en remplaçant les espaces réservés suivants par leurs valeurs correspondantes. L’empreinte digitale d’un certificat est une valeur de hachage calculée qui est unique à ce certificat. Vous avez besoin de l’empreinte digitale pour configurer votre appareil IoT dans IoT Hub pour les tests.
{Fichier CRT}. Le nom de votre dossier de certificat.
openssl x509 -in {CrtFile} -noout -fingerprint
Vérifiez le certificat manuellement après le téléchargement
Lorsque vous téléchargez votre certificat d’autorité de certification racine (CA) ou votre certificat CA subordonné sur votre hub IoT, vous pouvez choisir de vérifier automatiquement le certificat. Si vous n’avez pas choisi de vérifier automatiquement votre certificat lors du téléchargement, votre certificat est affiché avec son statut sur Non vérifié. Vous devez effectuer les étapes suivantes pour vérifier manuellement votre certificat.
Sélectionnez le certificat pour afficher la boîte de dialogue Détails du certificat .
Sélectionnez Générer un code de vérification dans la boîte de dialogue.
Copiez le code de vérification dans le presse-papiers. Vous devez utiliser ce code de vérification comme sujet du certificat lors des étapes suivantes. Par exemple, si le code de vérification est
75B86466DA34D2B04C0C4C9557A119687ADAE7D4732BDDB3, ajoute ce code comme objet de ton certificat comme montré à l’étape suivante.Il existe trois façons de générer un certificat de vérification :
Si vous utilisez le script PowerShell fourni par Microsoft, lancez
New-CACertsVerificationCert "<verification code>"pour créer un certificat nomméVerifyCert4.cer, remplaçant<verification code>par le code de vérification généré précédemment. Pour plus d’informations, consultez Gestion des certificats AC de test pour échantillons et didacticiels dans le référentiel GitHub pour le Kit de développement logiciel (SDK) d’appareil Azure IoT Hub pour C.Si vous utilisez le script Bash fourni par Microsoft, lancez
./certGen.sh create_verification_certificate "<verification code>"un certificat nommé verification-code.cert.pem, en le remplaçant<verification code>par le code de vérification généré précédemment. Pour plus d’informations, consultez Managing test CA certificates pour des exemples et tutoriels dans le dépôt GitHub pour le Azure IoT Hub Device SDK for C.Si vous utilisez OpenSSL pour générer vos certificats, vous devez d’abord générer une clé privée, puis générer un fichier de demande de signature de certificat (CSR). Dans l’exemple suivant, remplacez
<verification code>par le code de vérification généré précédemment :
openssl genpkey -out pop.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048 openssl req -new -key pop.key -out pop.csr ----- Country Name (2 letter code) [XX]:. State or Province Name (full name) []:. Locality Name (eg, city) [Default City]:. Organization Name (eg, company) [Default Company Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server hostname) []:<verification code> Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:Ensuite, créer un certificat en utilisant le fichier de configuration approprié pour la CA racine ou la CA subordonnée, ainsi que le fichier CSR. L’exemple suivant montre comment utiliser OpenSSL pour créer le certificat à partir d’un fichier de configuration racine de l’AC et du fichier CSR.
openssl ca -config rootca.conf -in pop.csr -out pop.crt -extensions client_extPour plus d’informations, voir le tutoriel - Créer et télécharger des certificats pour les tests.
Sélectionnez le nouveau certificat dans la vue Détails du certificat .
Après le téléchargement du certificat, sélectionnez Vérifier. Le statut du certificat doit passer à Vérifié.
Pour plus d'informations
Pour plus d'informations sur les certificats X.509 et leur utilisation dans IoT Hub, consultez les articles suivants :