Creazione e configurazione di domini personalizzati - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione e configurazione di domini personalizzati

Le configurazioni di dominio consentono di specificare un nome di dominio completo personalizzato (FQDN) a cui connettersi a AWS IoT Core. L'utilizzo di domini personalizzati offre molti vantaggi: è possibile esporre il proprio dominio o il dominio della propria azienda ai clienti per scopi di branding; è possibile modificare facilmente il proprio dominio per puntare a un nuovo broker; è possibile supportare la multi-tenancy per servire clienti con domini diversi all'interno dello stesso dominio Account AWS; e si possono gestire i dettagli dei certificati del server, come l'autorità di certificazione principale (CA) utilizzata per firmare il certificato, l'algoritmo di firma, la profondità della catena di certificati, e il ciclo di vita del certificato.

Il flusso di lavoro per impostare una configurazione di dominio con un dominio personalizzato consiste nelle tre fasi seguenti.

Registrazione dei certificati del server in Certificate Manager AWS

Prima di creare una configurazione di dominio con un dominio personalizzato, è necessario registrare la catena di certificati server in AWS Certificate Manager (ACM). È possibile utilizzare i tre tipi di certificati server seguenti.

Nota

AWS IoT Core considera che un certificato sia firmato da una CA pubblica se è incluso nel pacchetto ca-bundle affidabile di Mozilla.

Requisiti del certificato

Consulta Prerequisites for Importing Certificates (Prerequisiti per l'importazione di certificati) per i requisiti per l'importazione di certificati in ACM. Oltre a questi requisiti, AWS IoT Core aggiunge i seguenti requisiti.

  • Il certificato leaf deve includere l'estensione Extended Key Usage x509 v3 con il valore ServerAuth (TLS Web Server Authentication). Se si richiede il certificato da ACM, questa estensione viene aggiunta automaticamente.

  • La profondità massima della catena di certificati è di 5 certificati.

  • La dimensione massima della catena di certificati è di 16 KB.

  • Gli algoritmi crittografici e le dimensioni delle chiavi supportati includono RSA 2048 bit (RSA_2048) ed ECDSA 256 bit (EC_Prime256v1).

Utilizzo di un certificato per più domini

Se si prevede di utilizzare un certificato per coprire più sottodomini, utilizzare un dominio con caratteri jolly nel campo nome comune (CN) o nomi alternativi oggetto (SAN). Ad esempio, utilizzare *.iot.example.com per coprire dev.iot.example.com, qa.iot.example.com e prod.iot.example.com. Ogni nome di dominio completo (FQDN) richiede la propria configurazione di dominio, ma più configurazioni di dominio possono utilizzare lo stesso valore jolly. Il CN o la SAN devono coprire il nome di dominio completo che si desidera utilizzare come dominio personalizzato. Se sono presenti SAN, la CN viene ignorata e una SAN deve coprire il nome di dominio completo che si desidera utilizzare come dominio personalizzato. Questa copertura può essere una corrispondenza esatta o una corrispondenza jolly. Dopo che un certificato jolly è stato convalidato e registrato su un account, agli altri account della regione viene impedito di creare domini personalizzati che si sovrappongono al certificato.

Nelle sezioni seguenti viene descritto come ottenere ogni tipo di certificato. Ogni risorsa certificato richiede un Amazon Resource Name (ARN) registrato con ACM da utilizzare quando si crea la configurazione del dominio.

Certificati pubblici generati da ACM

Puoi generare un certificato pubblico per il tuo dominio personalizzato utilizzando l'API. RequestCertificate Quando si genera un certificato in questo modo, ACM convalida la proprietà del dominio personalizzato. Per ulteriori informazioni, consulta Request a Public Certificate (Richiesta di un certificato pubblico) nella AWS Certificate Manager User Guide (Guida per l’utente Amazon Certificate Manager).

Certificati esterni firmati da una CA pubblica

Se disponi già di un certificato server firmato da una CA pubblica (una CA inclusa nel pacchetto ca-bundle affidabile di Mozilla), puoi importare la catena di certificati direttamente in ACM utilizzando l'API. ImportCertificate Per ulteriori informazioni su questa attività, sui prerequisiti e sui requisiti di formato dei certificati, consulta Importazione dei certificati.

Certificati esterni firmati da una CA privata

Se si dispone già di un certificato server firmato da una CA privata o autofirmato, è possibile utilizzare il certificato per creare la configurazione del dominio, ma è anche necessario creare un certificato pubblico aggiuntivo in ACM per convalidare la proprietà del dominio. A tale scopo, registra la catena di certificati del server in ACM utilizzando l'API. ImportCertificate Per ulteriori informazioni su questa attività, sui prerequisiti e sui requisiti di formato dei certificati, consulta Importazione dei certificati.

Creazione di un certificato di convalida

Dopo aver importato il certificato in ACM, genera un certificato pubblico per il tuo dominio personalizzato utilizzando l'RequestCertificateAPI. Quando si genera un certificato in questo modo, ACM convalida la proprietà del dominio personalizzato. Per ulteriori informazioni, vedere Richiedi un certificato pubblico. Quando si crea la configurazione del dominio, utilizzare questo certificato pubblico come certificato di convalida.

Creazione di una configurazione di dominio

Puoi creare un endpoint configurabile su un dominio personalizzato utilizzando l'API. CreateDomainConfiguration Una configurazione di dominio per un dominio personalizzato è costituita dai seguenti elementi:

  • domainConfigurationName

    un nome definito dall'utente che identica la configurazione del dominio. I nomi di configurazione del dominio che iniziano con IoT: sono riservati agli endpoint predefiniti e non possono essere utilizzati. Inoltre, questo valore deve essere unico per il tuo. Regione AWS

  • domainName

    Il nome di dominio completo utilizzato dai dispositivi per la connessione. AWS IoT Core AWS IoT Core sfrutta l'estensione TLS SNI (Server Name Indication) per applicare configurazioni di dominio. I dispositivi devono utilizzare questa estensione durante la connessione e passare un nome server identico al nome di dominio specificato nella configurazione del dominio.

  • serverCertificateArns

    L'ARN della catena di certificati del server che hai registrato con ACM. AWS IoT Core attualmente supporta solo un certificato server.

  • validationCertificateArn

    L'ARN del certificato pubblico generato in ACM per convalidare la proprietà del dominio personalizzato. Questo argomento non è necessario se si utilizza un certificato server con firma pubblica o generato da ACM.

  • defaultAuthorizerName (optional)

    Il nome dell'autorizzazione ad hoc da utilizzare nell'endpoint.

  • allowAuthorizerOverride

    Un valore booleano che specifica se i dispositivi possono sovrascrivere l'autorizzazione predefinita specificando un'autorizzazione differente nell'intestazione HTTP della richiesta. Questo valore è obbligatorio se viene specificato un valore per defaultAuthorizerName.

  • serviceType

    AWS IoT Core attualmente supporta solo il tipo di DATA servizio. Quando si specificaDATA, AWS IoT restituisce un endpoint con un tipo di endpoint di. iot:Data-ATS

  • TlsConfig (facoltativo)

    Un oggetto che specifica la configurazione TLS per un dominio. Per ulteriori informazioni, consulta Configurazione delle impostazioni TLS nelle configurazioni di dominio.

  • serverCertificateConfig (facoltativo)

    Un oggetto che specifica la configurazione del certificato del server per un dominio. Per ulteriori informazioni, consulta Configurazione del certificato del server per la graffatura di OCSP.

Il AWS CLI comando seguente crea una configurazione di dominio per 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

Dopo aver creato la configurazione del dominio, potrebbero essere necessari fino a 60 minuti prima che i certificati AWS IoT Core server personalizzati vengano forniti.

Per ulteriori informazioni, consulta Gestione delle configurazioni di dominio.

Creazione di record DNS

Dopo aver registrato la catena di certificati server e creato la configurazione del dominio, creare un record DNS in modo che il dominio personalizzato punti a un dominio AWS IoT . Questo record deve puntare a un AWS IoT endpoint di tipoiot:Data-ATS. Puoi ottenere il tuo endpoint utilizzando l'DescribeEndpointAPI.

Il AWS CLI comando seguente mostra come ottenere l'endpoint.

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

Dopo aver ottenuto l'iot:Data-ATSendpoint, crea un CNAME record dal tuo dominio personalizzato a questo AWS IoT endpoint. Se crei più domini personalizzati nello stesso dispositivo Account AWS, assegnali come alias allo stesso endpoint. iot:Data-ATS

Risoluzione dei problemi

Se hai problemi a connettere i dispositivi a un dominio personalizzato, assicurati che AWS IoT Core abbia accettato e applicato il certificato del tuo server. Puoi verificare di AWS IoT Core aver accettato il tuo certificato utilizzando la AWS IoT Core console o il AWS CLI.

Per utilizzare la AWS IoT Core console, vai alla pagina Impostazioni e seleziona il nome di configurazione del dominio. Nella sezione Server certificate details (Dettagli certificato server), controlla lo stato e i dettagli dello stato. Se il certificato non è valido, sostituiscilo in ACM con un certificato che soddisfa i requisiti del certificato elencati nella sezione precedente. Se il certificato ha lo stesso ARN, lo AWS IoT Core raccoglieremo e lo applicheremo automaticamente.

Per verificare lo stato del certificato utilizzando il AWS CLI, chiama l'DescribeDomainConfigurationAPI e specifica il nome di configurazione del dominio.

Nota

Se il certificato non è valido, AWS IoT Core continuerà a fornire l'ultimo certificato valido.

È possibile verificare quale certificato viene fornito sull'endpoint utilizzando il seguente comando openssl.

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