Configuration des certificats et des clés pour les tests TLS - FreeRTOS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des certificats et des clés pour les tests TLS

TLS_ConnectRSA()

Cette section fournit des instructions sur la configuration des certificats et des clés pour tester votre port TLS.

Pour l'authentification d’appareil RSA, vous pouvez utiliser la clé privée et le certificat que vous avez téléchargés à partir de la console AWS IoT lorsque vous avez enregistré votre appareil.

Note

Une fois que vous avez enregistré votre appareil en tant qu'objet AWS IoT, vous pouvez récupérer des certificats d'appareil depuis la console AWS IoT, mais vous ne pouvez pas récupérer de clés privées.

FreeRTOS est un projet en langage C. Vous devez formater les certificats et les clés avant de les ajouter au fichier d’en-tête freertos/tests/include/aws_clientcredential_keys.h.

Pour formater le certificat et la clé pour freertos/tests/include/aws_clientcredential_keys.h

  1. Dans une fenêtre du navigateur, ouvrez freertos/tools/certificate_configuration/CertificateConfigurator.html.

  2. Sous Certificate PEM file (Fichier PEM de certificat), choisissez le fichier ID-certificate.pem.crt que vous avez téléchargé à partir de la console AWS IoT.

  3. Sous Private Key PEM file (Fichier PEM de clé privée), choisissez le fichier ID-private.pem.key que vous avez téléchargé à partir de la console AWS IoT.

  4. Choisissez Generate and save aws_clientcredential_keys.h (Générer et enregistrer aws_clientcredential_keys.h) et enregistrez le fichier dans freertos/tests/include. Cela remplace le fichier existant dans le répertoire.

    Note

    Le certificat et la clé privée sont codés en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

TLS_ConnectEC()

Pour l'authentification Elliptic Curve Digital Signature Algorithm (ECDSA), vous avez besoin de générer une clé privée, une demande de signature de certificat (CSR) et un certificat. Vous pouvez utiliser OpenSSL pour générer la clé privée et la CSR, et vous pouvez utiliser la CSR pour générer le certificat dans la console AWS IoT.

Pour générer une clé privée et une demande de signature de certificat (CSR)

  1. Utilisez la commande suivante pour créer un fichier de clé privée nommé p256_privatekey.pem dans le répertoire de travail actuel :

    openssl ecparam -name prime256v1 -genkey -noout -out p256_privatekey.pem
  2. Utilisez la commande suivante pour créer un fichier CSR nommé csr.csr dans le répertoire de travail actuel.

    openssl req –new –key p256_privatekey.pem –out csr.csr

Pour créer un certificat dans la AWS IoT console avec une CSR

  1. Ouvrez la console AWS IoT.

  2. Dans le volet de navigation, choisissez successivement Sécurité, Certificats et Créer.

  3. Choisissez Créer avec CSR, puis recherchez et téléchargez le fichier csr.csr que vous avez créé à l'aide d'OpenSSL.

  4. Choisissez Activation pour activer le certificat, puis choisissez Télécharger pour télécharger le certificat en tant que fichier .cert.pem.

  5. Choisissez Attacher une stratégie, puis recherchez et sélectionnez la stratégie AWS IoT que vous avez créée et attachée à votre certificat RSA dans les instructions Connexion de votre appareil à AWS IoT, et choisissez Effectué.

  6. Attachez le certificat à l'objet AWS IoT que vous avez créé lorsque vous avez enregistré votre appareil.

  7. Dans la page Certificats, recherchez et sélectionnez le certificat que vous venez de créer. Dans le coin supérieur droit de la page, choisissez Actions, puis choisissez Attacher un objet.

  8. Recherchez et sélectionnez l'objet que vous avez créé pour votre appareil, puis choisissez Attacher.

Vous devez formater le certificat et la clé privée de votre appareil avant de les ajouter au fichier d'en-tête freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h.

Pour formater le certificat et la clé pour freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h

  1. Dans une fenêtre du navigateur, ouvrez freertos/tools/certificate_configuration/PEMfileToCString.html.

  2. Sous PEM Certificate or Key (Certificat ou clé PEM), choisissez le fichier ID-certificate.pem.crt que vous avez téléchargé à partir de la console AWS IoT.

  3. Sélectionnez Display formatted PEM string to be copied into aws_clientcredential_keys.h (Afficher la chaîne PEM formatée à copier dans aws_clientcredential_keys.h), puis copiez la chaîne du certificat.

  4. Ouvrez freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h et collez la chaîne formatée de certificat dans la définition de tlstestCLIENT_CERTIFICATE_PEM_EC.

    Note

    Le certificat et la clé privée sont codés en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

  5. Suivez les mêmes étapes pour obtenir la chaîne formatée pour le fichier de clé privée que vous avez créée à l'aide d'OpenSSL (p256_privatekey.pem). Copiez et collez la chaîne formatée de la clé privée dans la définition de tlstestCLIENT_PRIVATE_KEY_PEM_EC dans freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h.

Dansfreertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h, définissez le tlstestMQTT_BROKER_ENDPOINT_EC avec la même adresse de point de terminaison d'agent AWS IoT MQTT que celle que vous avez utilisée dans Connexion de votre appareil à AWS IoT.

TLS_ConnectMalformedCert()

Ce test vérifie que vous pouvez utiliser un certificat incorrect pour une authentification au niveau du serveur. La modification aléatoire d'un certificat est susceptible d'être rejetée lors de la vérification du certificat X.509 avant que la demande de connexion soit envoyée. Pour configurer un certificat incorrect, nous vous proposons de modifier l'émetteur du certificat.

Pour modifier l'émetteur d'un certificat

  1. Prenez le certificat client valide que vous avez utilisé, ID-certificate.pem.crt.

    Dans Windows Certificate Manager, les propriétés du certificat apparaissent comme suit :

  2. À l’aide de la commande suivante, convertissez le certificat du format PEM au format DER :

    openssl x509 -outform der -in ID-certificate.pem.crt -out ID-certificate.der.crt
  3. Ouvrez le certificat DER, et recherchez la séquence hexadécimale suivante :

    41 6d 61 7a 6f 6e 20 57 65 62 20 53 65 72 76 69 63 65 73

    Cette séquence, traduite en texte brut, se lit « Amazon Web Services ».

  4. Modifiez la valeur 53 en 43. La séquence devient alors « Amazon Web Cervices » en texte brut. Enregistrez le fichier.

    Dans Windows Certificate Manager, les propriétés du certificat apparaissent désormais comme suit :

  5. Utilisez la commande suivante pour convertir de nouveau le certificat au format PEM :

    openssl x509 -inform der -in ID-certificate.der.crt -out ID-cert-modified.pem.crt

Vous devez formater le certificat incorrect pour votre appareil avant de l'ajouter au fichier d’en-tête freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h.

Pour formater le certificat pour freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h

  1. Dans une fenêtre du navigateur, ouvrez freertos/tools/certificate_configuration/PEMfileToCString.html.

  2. Sous PEM Certificate or Key (Clé ou certificat PEM), choisissez le certificat ID-certificate.pem.crt que vous avez créé, puis modifié.

  3. Sélectionnez Display formatted PEM string to be copied into aws_clientcredential_keys.h (Afficher la chaîne PEM formatée à copier dans aws_clientcredential_keys.h), puis copiez la chaîne du certificat.

  4. Ouvrez freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h et collez la chaîne formatée de certificat dans la définition de tlstestCLIENT_CERTIFICATE_PEM_MALFORMED.

    Note

    Le certificat est codé en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

TLS_ConnectBYOCCredentials()

Vous pouvez utiliser votre propre certificat aux fins de l'authentification. Pour créer et enregistrer un certificat avec une chaîne rootCA/CA valide, suivez les instructions fournies dans Création d'un BYOC (ECDSA). Une fois que vous avez créé le certificat, vous devez associer certaines stratégies au certificat de votre appareil, puis vous devez associer les caractéristiques de votre appareil au certificat.

Pour associer une stratégie au certificat de votre appareil

  1. Ouvrez la console AWS IoT.

  2. Dans le volet de navigation, sélectionnez Secure (Sécurisé),Certificates (Certificats), puis choisissez le certificat d'appareil que vous avez créé et enregistré dans Création d'un BYOC (ECDSA).

  3. Sélectionnez Actions, puis Attach policy (Associer une stratégie).

  4. Recherchez et sélectionnez la AWS IoT stratégie que vous avez créée et associée à votre certificat RSA dans les instructions Connexion de votre appareil à AWS IoT, puis sélectionnez Attach (Associer).

Pour associer un objet au certificat de votre appareil

  1. Dans la page Certificates (Certificats) , recherchez et choisissez le même certificat d'appareil, sélectionnez Actions, puis Attach thing (Associer un objet).

  2. Recherchez et choisissez l'objet que vous avez créé pour votre appareil, puis sélectionnez Attach (Associer).

Pour formater le certificat pour freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h

  1. Dans une fenêtre du navigateur, ouvrez freertos/tools/certificate_configuration/PEMfileToCString.html.

  2. Sous PEM Certificate or Key (Clé ou certificat PEM), choisissez le certificat ID-certificate.pem.crt que vous avez créé, puis modifié.

  3. Sélectionnez Display formatted PEM string to be copied into aws_clientcredential_keys.h (Afficher la chaîne PEM formatée à copier dans aws_clientcredential_keys.h), puis copiez la chaîne du certificat.

  4. Ouvrez freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h et collez la chaîne formatée de certificat dans la définition de tlstestCLIENT_BYOC_CERTIFICATE_PEM.

    Note

    Le certificat est codé en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

  5. Suivez les mêmes étapes pour obtenir la chaîne formatée pour le fichier de clé privée que vous avez créé. Copiez et collez la chaîne formatée de la clé privée dans la définition de tlstestCLIENT_BYOC_PRIVATE_KEY_PEM dans freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h.

TLS_ConnectUntrustedCert()

Vous pouvez utiliser votre propre certificat d'authentification, sans enregistrer votre certificat avec AWS IoT. Pour créer un certificat avec une chaîne rootCA/CA valide, suivez les instructions de Création d'un BYOC (ECDSA), mais ignorez les instructions finales pour enregistrer votre appareil avec AWS IoT.

Pour formater le certificat pour freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h

  1. Dans une fenêtre du navigateur, ouvrez freertos/tools/certificate_configuration/PEMfileToCString.html.

  2. Sous PEM Certificate or Key (Clé ou certificat PEM), choisissez le certificat ID-certificate.pem.crt que vous avez créé, puis modifié.

  3. Sélectionnez Display formatted PEM string to be copied into aws_clientcredential_keys.h (Afficher la chaîne PEM formatée à copier dans aws_clientcredential_keys.h), puis copiez la chaîne du certificat.

  4. Ouvrez freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h et collez la chaîne formatée de certificat dans la définition de tlstestCLIENT_UNTRUSTED_CERTIFICATE_PEM.

    Note

    Le certificat est codé en dur à des fins de démonstration uniquement. Les applications de niveau production doivent stocker ces fichiers dans un emplacement sécurisé.

  5. Suivez les mêmes étapes pour obtenir la chaîne formatée pour le fichier de clé privée que vous avez créé. Copiez et collez la chaîne formatée de la clé privée dans la définition de tlstestCLIENT_UNTRUSTED_PRIVATE_KEY_PEM dans freertos/libraries/freertos_plus/standard/tls/test/iot_test_tls.h.