Creare certificati demo per testare le funzionalità del dispositivo IoT Edge
Si applica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS raggiungerà il fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
I dispositivi IoT Edge richiedono certificati per la comunicazione sicura tra il runtime, i moduli e tutti i dispositivi downstream. Se non si ha un'autorità di certificazione per creare i certificati necessari, è possibile usare i certificati demo per provare le funzionalità di IoT Edge nell'ambiente di test. Questo articolo descrive le funzionalità degli script di generazione di certificati forniti da IoT Edge per i test.
Avviso
Questi certificati scadono dopo 30 giorni e non devono essere usati in alcuno scenario di produzione.
È possibile creare certificati in qualsiasi computer e quindi copiarli nel dispositivo IoT Edge oppure generare i certificati direttamente nel dispositivo IoT Edge.
Prerequisiti
Un computer di sviluppo con Git installato.
Scaricare gli script dei certificato di test e configurare la directory di lavoro
Il repository IoT Edge in GitHub include script di generazione di certificati che è possibile usare per creare certificati demo. Questa sezione fornisce istruzioni per preparare gli script da eseguire nel computer, in Windows o Linux.
Per creare certificati demo in un dispositivo Windows, è necessario installare OpenSSL e quindi clonare gli script di generazione e configurarli per l'esecuzione in locale in PowerShell.
Installa OpenSSL
Installare OpenSSL per Windows nel computer usato per generare i certificati. Se nel dispositivo Windows è già installato OpenSSL, assicurarsi che openssl.exe sia disponibile nella variabile di ambiente PATH.
Esistono diversi modi per installare OpenSSL, tra cui le opzioni seguenti:
Metodo più semplice: scaricare e installare uno dei file binari OpenSSL di terze parti, ad esempio da OpenSSL in SourceForge. Aggiungere il percorso completo di openssl.exe alla variabile di ambiente PATH.
Metodo consigliato: scaricare il codice sorgente di OpenSSL source code e creare i file binari nel computer personalmente o tramite vcpkg. Nelle istruzioni elencate di seguito viene usato vcpkg per scaricare il codice sorgente, compilare e installare OpenSSL nel computer Windows con passaggi molto semplici.
Passare alla directory in cui installare vcpkg, Seguire le istruzioni per scaricare e installare vcpkg.
Dopo aver installato vcpkg, eseguire il comando seguente da un prompt di PowerShell per installare il pacchetto OpenSSL per Windows x64. Per completare l'installazione sono in genere necessari circa 5 minuti.
.\vcpkg install openssl:x64-windows
Aggiungere
<vcpkg path>\installed\x64-windows\tools\openssl
alla variabile di ambiente PATH in modo da rendere il file openssl.exe disponibile per la chiamata.
Preparare gli script in PowerShell
Il repository Git di Azure IoT Edge contiene script che è possibile usare per generare i certificati di test. In questa sezione si clona il repository IoT Edge ed si eseguono gli script.
Aprire una finestra di PowerShell in modalità amministratore.
Clonare il repository Git IoT Edge che contiene gli script per generare certificati demo. Usare il comando
git clone
o scaricare il file ZIP.git clone https://github.com/Azure/iotedge.git
Creare una directory in cui si desidera lavorare e copiarvi gli script dei certificati. Tutti i file di certificato e di chiave verranno creati in questa directory.
mkdir wrkdir cd .\wrkdir\ cp ..\iotedge\tools\CACertificates\*.cnf . cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .
Se il repository è stato scaricato come file ZIP, il nome della cartella è
iotedge-master
e il resto del percorso è identico.Abilitare PowerShell per l'esecuzione degli script.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
Includere le funzioni usate dagli script nello spazio dei nomi globale di PowerShell.
. .\ca-certs.ps1
Nella finestra di PowerShell verrà visualizzato un avviso che indica che i certificati generati da questo script sono solo a scopo di test e non devono essere usati negli scenari di produzione.
Verificare che OpenSSL sia stato installato correttamente e assicurarsi che non vi siano conflitti di nomi con i certificati esistenti. In caso di problemi, l'output dello script dovrebbe descrivere come correggerli nel sistema in uso.
Test-CACertsPrerequisites
Creare un certificato della CA radice
Eseguire questo script per generare una CA radice necessaria per ogni passaggio di questo articolo.
Il certificato della CA radice viene usato per creare tutti gli altri certificati demo per testare uno scenario IoT Edge. È possibile continuare a usare lo stesso certificato della CA radice per creare certificati demo per più dispositivi IoT Edge o downstream.
Se nella cartella di lavoro è già presente un certificato della CA radice, non crearne uno nuovo. Il nuovo certificato della CA radice sovrascriverà il precedente e tutti i certificati downstream creati da quello precedente smetteranno di funzionare. Se si vogliono più certificati della CA radice, assicurarsi di gestirli in cartelle separate.
Passare alla directory di lavoro
wrkdir
in cui sono stati inseriti gli script di generazione di certificati.Creare il certificato della CA radice e fare in modo che firmi un certificato intermedio. Tutti i certificati vengono inseriti nella directory di lavoro.
New-CACertsCertChain rsa
Questo comando script crea diversi file di certificato e di chiave, ma quando gli articoli richiedono il certificato della CA radice, usare il file seguente:
certs\azure-iot-test-only.root.ca.cert.pem
Questo certificato è necessario prima di poter creare altri certificati per i dispositivi IoT Edge e i dispositivi downstream, come descritto nelle sezioni successive.
Creare un certificato di identità per il dispositivo IoT Edge
I certificati di identità dei dispositivi IoT Edge vengono usati per effettuare il provisioning dei dispositivi IoT Edge se si sceglie di usare l'autenticazione del certificato X.509. Se si usa una chiave simmetrica per l'autenticazione nell'hub IoT o nel servizio Device Provisioning, questi certificati non sono necessari ed è possibile ignorare questa sezione.
Questi certificati funzionano indipendentemente dal fatto che si usi il provisioning manuale o il provisioning automatico tramite il servizio Device Provisioning in hub IoT di Azure.
I certificati di identità del dispositivo sono disponibili nella sezione Provisioning del file di configurazione nel dispositivo IoT Edge.
Passare alla directory di lavoro
wrkdir
con gli script di generazione di certificati e il certificato della CA radice.Creare il certificato di identità del dispositivo IoT Edge e la chiave privata con il comando seguente:
New-CACertsEdgeDeviceIdentity "<device-id>"
Il nome passato a questo comando è l'ID del dispositivo IoT Edge nell'hub IoT.
Il nuovo comando di identità del dispositivo crea diversi file di certificato e di chiave:
Type File Descrizione Certificato di identità del dispositivo certs\iot-edge-device-identity-<device-id>.cert.pem
Firmato dal certificato intermedio generato in precedenza. Contiene solo il certificato di identità. Deve essere specificato nel file di configurazione per la registrazione singola del servizio Device Provisioning o il provisioning dell'hub IoT. Certificato con catena completa certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem
Contiene la catena di certificati completa, incluso il certificato intermedio. Deve essere specificato nel file di configurazione per IoT Edge da presentare al servizio Device Provisioning per il provisioning della registrazione di gruppo. Chiave privata private\iot-edge-device-identity-<device-id>.key.pem
Chiave privata associata al certificato di identità del dispositivo. Deve essere specificato nel file di configurazione, purché si usi un tipo qualsiasi di autenticazione del certificato (identificazione personale o CA) per il servizio Device Provisioning o l'hub IoT.
Creare certificati CA Edge
Questi certificati sono necessari per gli scenari del gateway perché il certificato della CA Edge è il modo in cui il dispositivo IoT Edge verifica l'identità dei dispositivi downstream. È possibile ignorare questa sezione se non si connettono dispositivi downstream a IoT Edge.
Il certificato della CA Edge è anche responsabile della creazione di certificati per i moduli in esecuzione nel dispositivo, ma il runtime di IoT Edge può creare certificati temporanei se la CA Edge non è configurata. I certificati della CA Edge sono disponibili nella sezione CA Edge del file di config.toml
nel dispositivo IoT Edge. Per altre informazioni, vedere Informazioni sulla modalità di utilizzo dei certificati da parte di Azure IoT Edge.
Passare alla directory di lavoro
wrkdir
con gli script di generazione di certificati e il certificato della CA radice.Creare il certificato della CA e la chiave privata di IoT Edge con il comando seguente. Specificare un nome per il certificato della CA. Il nome passato al comando New-CACertsEdgeDevice non deve essere uguale al parametro hostname nel file di configurazione o nell'ID del dispositivo nell'hub IoT.
New-CACertsEdgeDevice "<CA cert name>"
Questo comando crea diversi file di certificato e di chiave. È necessario copiare il certificato e la coppia di chiavi seguenti in un dispositivo IoT Edge e farvi riferimento nel file di configurazione:
certs\iot-edge-device-ca-<CA cert name>-full-chain.cert.pem
private\iot-edge-device-ca-<CA cert name>.key.pem
Creare certificati del dispositivo downstream
Questi certificati sono necessari per configurare un dispositivo IoT downstream per uno scenario gateway e per usare l'autenticazione X.509 con l'hub IoT o il servizio Device Provisioning. Se si vuole usare l'autenticazione con chiave simmetrica, non è necessario creare certificati per il dispositivo downstream e si può ignorare questa sezione.
Esistono due modi per autenticare un dispositivo IoT usando certificati X.509: usando certificati autofirmati o certificati firmati da un'autorità di certificazione (CA).
- Per l'autenticazione autofirmata X.509, a volte definita autenticazione con identificazione personale, è necessario creare nuovi certificati da inserire nel dispositivo IoT. Questi certificati hanno un'identificazione personale che viene condivisa con l'hub IoT per l'autenticazione.
- Per l'autenticazione firmata da un'autorità di certificazione (CA) X.509, è necessario un certificato della CA radice registrato nell'hub IoT o nel servizio Device Provisioning che viene usato per firmare i certificati per il dispositivo IoT. Qualsiasi dispositivo che usa un certificato rilasciato dal certificato della CA radice o da uno dei relativi certificati intermedi può eseguire l'autenticazione purché il dispositivo presenti la catena completa.
Gli script di generazione di certificati consentono di creare certificati demo per testare uno di questi scenari di autenticazione.
Certificati autofirmati
Quando si autentica un dispositivo IoT con certificati autofirmati, è necessario creare certificati del dispositivo basati sul certificato della CA radice per la soluzione. Si recupera quindi un'identificazione personale esadecimale dai certificati da fornire all'hub IoT. Il dispositivo IoT necessita anche di una copia dei certificati del dispositivo per poter eseguire l'autenticazione con l'hub IoT.
Passare alla directory di lavoro
wrkdir
con gli script di generazione di certificati e il certificato della CA radice.Creare due certificati (primario e secondario) per il dispositivo downstream. Una convenzione di denominazione semplice da usare consiste nel creare i certificati con il nome del dispositivo IoT e quindi l'etichetta primaria o secondaria. Ad esempio:
New-CACertsDevice "<device ID>-primary" New-CACertsDevice "<device ID>-secondary"
Questo comando script crea diversi file di certificato e di chiave. È necessario copiare le coppie di certificati e chiavi seguenti nel dispositivo IoT downstream e farvi riferimento nelle applicazioni che si connettono all'hub IoT:
certs\iot-device-<device ID>-primary-full-chain.cert.pem
certs\iot-device-<device ID>-secondary-full-chain.cert.pem
certs\iot-device-<device ID>-primary.cert.pem
certs\iot-device-<device ID>-secondary.cert.pem
certs\iot-device-<device ID>-primary.cert.pfx
certs\iot-device-<device ID>-secondary.cert.pfx
private\iot-device-<device ID>-primary.key.pem
private\iot-device-<device ID>-secondary.key.pem
Recuperare l'identificazione personale SHA1 (denominata identificazione personale nei contesti dell'hub IoT) da ogni certificato. L'identificazione personale è una stringa di 40 caratteri esadecimali. Usare il comando openssl seguente per visualizzare il certificato e trovare l'identificazione personale:
Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).Thumbprint
Eseguire questo comando due volte, una volta per il certificato primario e una per il certificato secondario. È possibile fornire identificazioni personali per entrambi i certificati quando si registra un nuovo dispositivo IoT usando certificati X.509 autofirmati.
Certificati firmati dalla CA
Quando si autentica un dispositivo IoT con certificati firmati dalla CA, è necessario caricare il certificato della CA radice per la soluzione nell'hub IoT. Usare lo stesso certificato della CA radice per creare certificati del dispositivo da inserire nel dispositivo IoT in modo che possa eseguire l'autenticazione con l'hub IoT.
I certificati in questa sezione sono relativi ai passaggi della serie di esercitazioni sui certificati X.509 dell'hub IoT. Per l'introduzione di questa serie, vedere Informazioni sulla crittografia a chiave pubblica e sull'infrastruttura a chiave pubblica X.509.
Caricare il file del certificato della CA radice dalla directory di lavoro
certs\azure-iot-test-only.root.ca.cert.pem
nell'hub IoT.Se la verifica automatica non è selezionata, usare il codice fornito nel portale di Azure per verificare di essere proprietari del certificato della CA radice.
New-CACertsVerificationCert "<verification code>"
Creare una catena di certificati per il dispositivo downstream. Usare lo stesso ID dispositivo con cui il dispositivo è registrato nell'hub IoT.
New-CACertsDevice "<device id>"
Questo comando script crea diversi file di certificato e di chiave. È necessario copiare le coppie di certificati e chiavi seguenti nel dispositivo IoT downstream e farvi riferimento nelle applicazioni che si connettono all'hub IoT:
certs\iot-device-<device id>.cert.pem
certs\iot-device-<device id>.cert.pfx
certs\iot-device-<device id>-full-chain.cert.pem
private\iot-device-<device id>.key.pem