Création et configuration de domaines personnalisés - AWS IoT Core

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.

Création et configuration de domaines personnalisés

Les configurations de domaine vous permettent de spécifier un nom de domaine complet personnalisé (FQDN) pour vous connecter à AWS IoT Core. L'utilisation de domaines personnalisés présente de nombreux avantages : vous pouvez exposer votre propre domaine ou celui de votre entreprise aux clients à des fins de marque ; vous pouvez facilement modifier votre propre domaine pour qu'il pointe vers un nouveau courtier ; vous pouvez prendre en charge la mutualisation pour servir des clients ayant différents domaines au sein d'un même établissement Compte AWS ; et vous pouvez gérer les détails de vos propres certificats de serveur, tels que l'autorité de certification racine (CA) utilisée pour signer le certificat, l'algorithme de signature, la profondeur de la chaîne de certificats et le cycle de vie de le certificat.

Le flux de travail pour définir une configuration de domaine avec un domaine personnalisé se compose des trois étapes suivantes.

Enregistrement des certificats de serveur dans le gestionnaire de AWS certificats

Avant de créer une configuration de domaine avec un domaine personnalisé, vous devez enregistrer votre chaîne de certificats de serveur dans AWS Certificate Manager (ACM). Vous pouvez utiliser les trois types de certificats de serveur suivants.

Note

AWS IoT Core considère qu'un certificat a été signé par une autorité de certification publique s'il est inclus dans le ca-bundle sécurisé de Mozilla.

Exigences du certificat

Consulter Conditions préalables à l'importation de certificats pour connaître les exigences relatives à l'importation de certificats dans ACM. En plus de ces exigences, AWS IoT Core ajoute les exigences suivantes.

  • Le certificat Leaf doit inclure l'extension Extended Key Usage x509 v3 avec la valeur ServerAuth (authentification du serveur Web TLS). Si vous demandez le certificat à ACM, cette extension est automatiquement ajoutée.

  • La profondeur maximale de la chaîne de certificats est de 5 certificats.

  • La taille maximale de la chaîne de certificats est de 16 Ko.

  • Les algorithmes cryptographiques et les tailles de clé pris en charge incluent RSA 2048 bits (RSA_2048) et ECDSA 256 bits (EC_Prime256v1).

Utiliser un certificat pour plusieurs domaines

Si vous envisagez d'utiliser un certificat pour couvrir plusieurs sous-domaines, utilisez un domaine générique dans le champ CN (Common Name) ou SAN (Subject Alternative Names). Par exemple, utilisez *.iot.example.com pour couvrir dev.iot.example.com, qa.iot.example.com et prod.iot.example.com. Chaque nom de domaine complet nécessite sa propre configuration de domaine, mais plusieurs configurations de domaine peuvent utiliser la même valeur générique. Les valeurs CN ou SAN doivent couvrir le nom de domaine complet que vous souhaitez utiliser en tant que domaine personnalisé. Si des SAN sont présents, le CN est ignoré et un SAN doit couvrir le nom de domaine complet que vous souhaitez utiliser en tant que domaine personnalisé. Cette couverture peut être une correspondance exacte ou une correspondance générique. Une fois qu'un certificat générique a été validé et enregistré sur un compte, les autres comptes de la région ne sont pas autorisés à créer des domaines personnalisés qui se chevauchent avec le certificat.

Les sections suivantes décrivent comment obtenir chaque type de certificat. Chaque ressource de certificat nécessite un Amazon Resource Name (ARN) enregistré auprès d'ACM que vous utilisez lorsque vous créez votre configuration de domaine.

Certificats publics générés par ACM

Vous pouvez générer un certificat public pour votre domaine personnalisé à l'aide de l'RequestCertificateAPI. Lorsque vous générez un certificat de cette manière, ACM valide votre propriété du domaine personnalisé. Pour de plus amples informations, veuillez consulter Demander un certificat public dans le AWS Certificate Manager Guide de l'utilisateur.

Certificats externes signés par une autorité de certification publique

Si vous possédez déjà un certificat de serveur signé par une autorité de certification publique (une autorité de certification incluse dans le ca-bundle sécurisé de Mozilla), vous pouvez importer la chaîne de certificats directement dans ACM à l'aide de l'API. ImportCertificate Pour en savoir plus sur cette tâche et sur les conditions préalables et les exigences en matière de format de certificat, consultez Importation de certificats.

Certificats externes signés par une autorité de certification privée

Si vous disposez déjà d'un certificat de serveur signé par une autorité de certification privée ou auto-signé, vous pouvez utiliser le certificat pour créer la configuration de votre domaine, mais vous devez également créer un certificat public supplémentaire dans ACM pour valider la propriété de votre domaine. Pour ce faire, enregistrez votre chaîne de certificats de serveur dans ACM à l'aide de l'ImportCertificateAPI. Pour en savoir plus sur cette tâche et sur les conditions préalables et les exigences en matière de format de certificat, consultez Importation de certificats.

Création d'un certificat de validation

Après avoir importé votre certificat dans ACM, générez un certificat public pour votre domaine personnalisé à l'aide de l'RequestCertificateAPI. Lorsque vous générez un certificat de cette manière, ACM valide votre propriété du domaine personnalisé. Pour de plus amples informations, veuillez consulter Demander un certificat public. Lorsque vous créez votre configuration de domaine, utilisez ce certificat public comme certificat de validation.

Création d'une configuration de domaine

Vous créez un point de terminaison configurable sur un domaine personnalisé à l'aide de l'CreateDomainConfigurationAPI. Une configuration de domaine pour un domaine personnalisé se compose des éléments suivants :

  • domainConfigurationName

    Un nom défini par l'utilisateur qui identifie la configuration du domaine. Les noms de configuration de domaine commençant par IoT: sont réservés aux points de terminaison par défaut et ne peuvent pas être utilisés. De plus, cette valeur doit être unique à votre Région AWS.

  • domainName

    Le nom de domaine complet que vos appareils utilisent pour se connecter AWS IoT Core. AWS IoT Core utilise l'extension TLS d'indication du nom du serveur (SNI) pour appliquer des configurations de domaine. Les appareils doivent utiliser cette extension lors de la connexion et transmettre un nom de serveur identique au nom de domaine spécifié dans la configuration de domaine.

  • serverCertificateArns

    L'ARN de la chaîne de certificats de serveur que vous avez enregistrée auprès d'ACM. AWS IoT Core ne prend actuellement en charge qu'un seul certificat de serveur.

  • validationCertificateArn

    ARN du certificat public que vous avez généré dans ACM pour valider la propriété de votre domaine personnalisé. Cet argument n'est pas obligatoire si vous utilisez un certificat de serveur signé publiquement ou généré par ACM.

  • defaultAuthorizerName (optional)

    Le nom du mécanisme d'autorisation personnalisée à utiliser sur le point de terminaison.

  • allowAuthorizerOverride

    Une Valeur booléenne qui spécifie si les appareils peuvent remplacer le mécanisme d'autorisation par défaut en spécifiant un autre mécanisme dans l'en-tête HTTP de la demande. Cette valeur est requise si une valeur est spécifiée pour defaultAuthorizerName.

  • serviceType

    AWS IoT Core ne prend actuellement en charge que le type de DATA service. Lorsque vous spécifiezDATA, AWS IoT renvoie un point de terminaison avec un type de point de terminaison deiot:Data-ATS.

  • TlsConfig (facultatif)

    Objet qui spécifie la configuration TLS pour un domaine. Pour plus d’informations, consultez Configuration des paramètres TLS dans les configurations de domaine.

  • serverCertificateConfig (facultatif)

    Objet qui spécifie la configuration du certificat de serveur pour un domaine. Pour plus d’informations, consultez Configuration du certificat de serveur pour l'agrafage OCSP.

La AWS CLI commande suivante crée une configuration de domaine pour iot.example.com.

aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" --service-type "DATA" --domain-name "iot.example.com" --server-certificate-arns serverCertARN --validation-certificate-arn validationCertArn
Note

Une fois que vous avez créé la configuration de votre domaine, il peut s'écouler jusqu'à 60 minutes avant que AWS IoT Core vos certificats de serveur personnalisés ne soient fournis.

Pour plus d’informations, consultez Gestion des configurations de domaine.

Création d'enregistrements DNS

Après avoir enregistré votre chaîne de certificats de serveur et créé votre configuration de domaine, créez un enregistrement DNS afin que votre domaine personnalisé pointe vers un domaine AWS IoT . Cet enregistrement doit pointer vers un point de AWS IoT terminaison de typeiot:Data-ATS. Vous pouvez obtenir votre point de terminaison à l'aide de l'DescribeEndpointAPI.

La AWS CLI commande suivante montre comment obtenir votre point de terminaison.

aws iot describe-endpoint --endpoint-type iot:Data-ATS

Une fois que vous avez obtenu votre iot:Data-ATS point de terminaison, créez un CNAME enregistrement à partir de votre domaine personnalisé pour ce AWS IoT point de terminaison. Si vous créez plusieurs domaines personnalisés dans le même environnement Compte AWS, associez-les à ce même iot:Data-ATS point de terminaison.

Résolution des problèmes

Si vous ne parvenez pas à connecter des appareils à un domaine personnalisé, assurez-vous que AWS IoT Core celui-ci a accepté et appliqué votre certificat de serveur. Vous pouvez vérifier que votre certificat AWS IoT Core a été accepté à l'aide de la AWS IoT Core console ou du AWS CLI.

Pour utiliser la AWS IoT Core console, accédez à la page Paramètres et sélectionnez le nom de configuration du domaine. Dans la section Détails du certificat de serveur, vérifiez le statut et les détails du statut. Si le certificat n'est pas valide, remplacez-le dans ACM par un certificat répondant aux exigences du certificat répertoriées dans la section précédente. Si le certificat possède le même ARN, il AWS IoT Core sera récupéré et appliqué automatiquement.

Pour vérifier l'état du certificat à l'aide du AWS CLI, appelez l'DescribeDomainConfigurationAPI et spécifiez le nom de configuration de votre domaine.

Note

Si votre certificat n'est pas valide, il AWS IoT Core continuera à servir le dernier certificat valide.

Vous pouvez vérifier quel certificat est diffusé sur votre terminal en utilisant la commande openssl suivante.

openssl s_client -connect custom-domain-name:8883 -showcerts -servername custom-domain-name