Creazione e configurazione di domini gestiti dai clienti - 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 gestiti dai clienti

Le configurazioni di dominio consentono di specificare un nome di dominio completo personalizzato (FQDN) a cui connettersi. AWS IoT Core L'utilizzo dei domini gestiti dai clienti (noti anche come 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 indirizzarlo a un nuovo broker; è possibile supportare la multi-tenancy per servire clienti con domini diversi all'interno dello stesso Account AWS; e è possibile 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 AWS Certificate Manager

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

Vedi 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 un valore di (Autenticazione del serverAuthserver Web). TLS Se richiedi il certificato daACM, 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) e ECDSA 256 bit (EC_Prime256v1).

Utilizzo di un certificato per più domini

Se prevedi di utilizzare un certificato per più sottodomini, utilizza un dominio wildcard nel campo Common Name (CN) o Subject Alternative Names (). SAN Ad esempio, utilizzare *.iot.example.com per coprire dev.iot.example.com, qa.iot.example.com e prod.iot.example.com. Ciascuno FQDN richiede la propria configurazione di dominio, ma più di una configurazione di dominio può utilizzare lo stesso valore jolly. Il CN o il SAN must cover FQDN che desideri utilizzare come dominio personalizzato. Se SANs sono presenti, il CN viene ignorato e SAN deve coprire FQDN quello 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 di certificato richiede un Amazon Resource Name (ARN) registrato con ACM cui utilizzi quando crei la configurazione del dominio.

ACM-certificati pubblici generati

È possibile generare un certificato pubblico per il dominio personalizzato utilizzando. RequestCertificateAPI 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 inACM. ImportCertificateAPI 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 utilizzando il. ACM ImportCertificateAPI 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 inACM, genera un certificato pubblico per il tuo dominio personalizzato utilizzando 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

È possibile creare un endpoint configurabile su un dominio personalizzato utilizzando. CreateDomainConfigurationAPI 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

    FQDNQuello a cui i tuoi dispositivi si connettono AWS IoT Core. AWS IoT Core sfrutta l'TLSestensione Server Name Indication (SNI) 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

    La catena ARN di certificati del server con cui ti sei registrato. ACM AWS IoT Core attualmente supporta solo un certificato server.

  • validationCertificateArn

    Il ARN certificato pubblico che hai generato ACM per convalidare la proprietà del tuo 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'autorizzatore predefinito specificando un altro autorizzatore nell'intestazione della richiesta. HTTP Questo valore è obbligatorio se viene specificato un valore per defaultAuthorizerName.

  • serviceType

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

  • TlsConfig(opzionale)

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

  • serverCertificateConfig(opzionale)

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

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 DNS record

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

Il AWS CLI comando seguente mostra come ottenere il proprio 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 Configurazioni del dominio 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 ACM con un certificato che soddisfi i requisiti di certificato elencati nella sezione precedente. Se il certificato è lo stessoARN, lo AWS IoT Core ritireremo e lo applicheremo automaticamente.

Per verificare lo stato del certificato utilizzando il AWS CLI, chiama DescribeDomainConfigurationAPIe 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