Creación y configuración de dominios personalizados - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación y configuración de dominios personalizados

Las configuraciones de dominio permiten especificar un nombre de dominio completo (FQDN) personalizado para conectarse a AWS IoT Core. El uso de dominios personalizados tiene muchas ventajas: puede exponer su propio dominio o el dominio de su empresa a los clientes con fines de marca; puede cambiar fácilmente su propio dominio para que apunte a un nuevo corredor; puede admitir el arrendamiento múltiple para atender a clientes con diferentes dominios dentro del mismo Cuenta de AWS; y puede administrar los detalles de sus propios certificados de servidor, como la autoridad de certificación (CA) raíz utilizada para firmar el certificado, el algoritmo de firma, la profundidad de la cadena de certificados y el ciclo de vida de el certificado.

El flujo de trabajo para establecer una configuración de dominio con un dominio personalizado consta de las tres etapas siguientes.

Registrar los certificados de servidor en el administrador de AWS certificados

Antes de crear una configuración de dominio con un dominio personalizado, debe registrar la cadena de certificados de servidor en AWS Certificate Manager (ACM). Puede utilizar los siguientes tres tipos de certificados de servidor.

nota

AWS IoT Core considera que un certificado está firmado por una CA pública si está incluido en el paquete ca de confianza de Mozilla.

Requisitos de certificados

Consulte Requisitos previos para la importación de certificados para conocer los requisitos para importar certificados a ACM. Además de estos requisitos, AWS IoT Core agrega los siguientes.

  • El certificado principal debe incluir la extensión x509 v3 de Extended Key Usage con el valor serverAuth (autenticación de servidor web TLS). Si solicita el certificado a ACM, esta extensión se agrega automáticamente.

  • La profundidad máxima de la cadena de certificados es de 5 certificados.

  • El tamaño máximo de la cadena de certificados es de 16 KB.

  • Los algoritmos criptográficos y los tamaños de clave compatibles incluyen el RSA de 2048 bits (RSA_2048) y el ECDSA de 256 bits (EC_Prime256v1).

Uso de un único certificado para varios dominios

Si tiene previsto utilizar un certificado para cubrir varios subdominios, utilice un dominio comodín en el campo Nombre común (CN) o Nombres alternativos del firmante (SAN). Por ejemplo, utilice *.iot.example.com para cubrir dev.iot.example.com, qa.iot.example.com y prod.iot.example.com. Cada FQDN requiere su propia configuración de dominio, pero varias configuraciones de dominio pueden usar el mismo valor comodín. El CN o el SAN deben cubrir el FQDN que desea utilizar como dominio personalizado. Si hay SAN presentes, se ignora el CN y el SAN debe cubrir el FQDN que desee utilizar como dominio personalizado. Esta cobertura puede ser una coincidencia exacta o una coincidencia de caracteres comodín. Una vez validado y registrado un certificado comodín en una cuenta, se impide que otras cuentas de la región creen dominios personalizados que coincidan con el certificado.

En las siguientes secciones se describe cómo obtener cada tipo de certificado. Cada recurso de certificado requiere un Nombre de recurso de Amazon (ARN) registrado en ACM que usted utiliza cuando crea la configuración de su dominio.

Certificados públicos generados por ACM

Puede generar un certificado público para su dominio personalizado mediante la API. RequestCertificate Cuando genera un certificado de esta manera, ACM valida que usted es el propietario del dominio personalizado. Para obtener más información, consulte Solicitud de un certificado público en la Guía del usuario de AWS Certificate Manager .

Certificados externos firmados por una entidad emisora de certificación pública

Si ya tienes un certificado de servidor firmado por una entidad emisora de certificados pública (una entidad emisora de certificados incluida en el paquete de certificados de confianza de Mozilla), puedes importar la cadena de certificados directamente a ACM mediante la ImportCertificateAPI. Para obtener más información sobre esta tarea, los requisitos previos y los requisitos de formato de certificado, consulte Importación de certificados.

Certificados externos firmados por una entidad emisora de certificación privada

Si ya tiene un certificado de servidor firmado por una entidad emisora de certificación privada o autofirmado, puede utilizar el certificado para crear la configuración de dominio, pero también debe crear un certificado público adicional en ACM para validar que usted es el propietario del dominio. Para ello, registre la cadena de certificados de su servidor en ACM mediante la API. ImportCertificate Para obtener más información sobre esta tarea, los requisitos previos y los requisitos de formato de certificado, consulte Importación de certificados.

Creación de un certificado de validación

Tras importar el certificado a ACM, genere un certificado público para su dominio personalizado mediante la RequestCertificateAPI. Cuando genera un certificado de esta manera, ACM valida que usted es el propietario del dominio personalizado. Para obtener más información, consulte Solicitar un certificado público. Cuando cree la configuración de dominio, utilice este certificado público como certificado de validación.

Creación de una configuración de dominio

Puede crear un punto final configurable en un dominio personalizado mediante la CreateDomainConfigurationAPI. Una configuración de dominio para un dominio personalizado consta de lo siguiente:

  • domainConfigurationName

    El nombre definido por el usuario que identifica la configuración del dominio. Los nombres de configuración de dominio que comienzan por IoT: están reservados para los puntos de conexión predeterminados y no se pueden usar. Además, este valor debe ser exclusivo de su Región de AWS.

  • domainName

    El FQDN al que utilizan sus dispositivos para conectarse AWS IoT Core. AWS IoT Core utiliza la extensión TLS de indicación de nombre de servidor (SNI) para aplicar las configuraciones de dominio. Los dispositivos deben usar esta extensión al conectarse y pasar un nombre de servidor idéntico al nombre de dominio especificado en la configuración del dominio.

  • serverCertificateArns

    El ARN de la cadena de certificados de servidor que registró en ACM. AWS IoT Core actualmente solo admite un certificado de servidor.

  • validationCertificateArn

    El ARN del certificado público que generó en ACM para validar la propiedad de su dominio personalizado. Este argumento no es necesario si utiliza un certificado de servidor firmado públicamente o uno generado por ACM.

  • defaultAuthorizerName (optional)

    El nombre del autorizador personalizado que se utilizará en el punto de conexión.

  • allowAuthorizerOverride

    Un valor booleano que especifica si los dispositivos pueden anular el autorizador predeterminado especificando un autorizador diferente en el encabezado HTTP de la solicitud. Este valor es obligatorio si se especifica un valor para defaultAuthorizerName.

  • serviceType

    AWS IoT Core actualmente solo admite el tipo DATA de servicio. Si lo especificaDATA, AWS IoT devuelve un punto final con un tipo de punto final deiot:Data-ATS.

  • TlsConfig (opcional)

    Un objeto que especifica el servicio de autorización de un dominio. Para obtener más información, consulte Configuración de los ajustes de TLS en las configuraciones de dominio.

  • serverCertificateConfig (opcional)

    Objeto que especifica la configuración del certificado de servidor de un dominio. Para obtener más información, consulte Configuración del certificado de servidor para el grapado OCSP.

El siguiente AWS CLI comando crea una configuración de dominio para 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
nota

Tras crear la configuración de dominio, es posible que pasen hasta 60 minutos hasta que se entreguen los certificados de AWS IoT Core servidor personalizados.

Para obtener más información, consulte Administración de configuraciones de dominio.

Creación de registros DNS

Después de registrar la cadena de certificados de servidor y crear la configuración de dominio, cree un registro DNS para que el dominio personalizado apunte a un dominio de AWS IoT . Este registro debe apuntar a un AWS IoT punto final de este tipoiot:Data-ATS. Puede obtener su punto final mediante la DescribeEndpointAPI.

El siguiente AWS CLI comando muestra cómo obtener el punto final.

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

Una vez que obtengas tu iot:Data-ATS punto de conexión, crea un CNAME registro desde tu dominio personalizado hasta este AWS IoT punto de conexión. Si crea varios dominios personalizados en el mismo dominio Cuenta de AWS, asígneles un alias a este mismo iot:Data-ATS punto final.

Resolución de problemas

Si tiene problemas para conectar los dispositivos a un dominio personalizado, asegúrese de que AWS IoT Core haya aceptado y aplicado su certificado de servidor. Puede comprobar si AWS IoT Core ha aceptado su certificado mediante la AWS IoT Core consola o el AWS CLI.

Para usar la AWS IoT Core consola, vaya a la página de configuración y seleccione el nombre de configuración del dominio. En la sección Detalles del certificado del servidor, compruebe el estado y los detalles del estado. Si el certificado no es válido, reemplácelo en ACM por un certificado que cumpla los requisitos de certificados enumerados en la sección anterior. Si el certificado tiene el mismo ARN, lo AWS IoT Core recogerá y lo aplicará automáticamente.

Para comprobar el estado del certificado mediante el AWS CLI, llame a la DescribeDomainConfigurationAPI y especifique el nombre de configuración de su dominio.

nota

Si su certificado no es válido, AWS IoT Core seguirá emitiendo el último certificado válido.

Puede comprobar qué certificado se está sirviendo en su punto de conexión mediante el siguiente comando openssl.

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