Condividi tramite


Creare certificati demo per testare le funzionalità del dispositivo IoT Edge

Si applica a:Segno di spunta IoT Edge 1.5 IoT Edge 1.5

Importante

IoT Edge 1.5 LTS è la versione supportata. IoT Edge 1.4 LTS è di fine vita a partire dal 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

I dispositivi IoT Edge necessitano di 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, usare i certificati demo per provare le funzionalità di IoT Edge nell'ambiente di test. Questo articolo illustra gli script di generazione di certificati forniti da IoT Edge per i test.

Avviso

Questi certificati scadono entro 30 giorni e non devono essere usati in alcun scenario di produzione.

Creare certificati in qualsiasi computer e quindi copiarli nel dispositivo IoT Edge o generare i certificati direttamente nel dispositivo IoT Edge.

Prerequisiti

Usare un computer di sviluppo in cui è installato Git.

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, installare OpenSSL, quindi clonare gli script di generazione e configurarli per l'esecuzione in locale in PowerShell.

Installa OpenSSL

Installare OpenSSL per Windows nel dispositivo usato per generare i certificati. Se OpenSSL è già installato, assicurarsi che openssl.exe sia disponibile nella variabile di ambiente PATH.

È possibile installare OpenSSL in modi diversi:

  • 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.

  • Raccomandato: Scaricare il codice sorgente OpenSSL e compilare i file binari nel dispositivo oppure usare vcpkg. Le istruzioni seguenti usano vcpkg per scaricare il codice sorgente, compilare e installare OpenSSL nel dispositivo Windows.

    1. Passare alla directory in cui installare vcpkg, Seguire le istruzioni per scaricare e installare vcpkg.

    2. 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
      
    3. 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.

  1. Aprire PowerShell in modalità amministratore.

  2. Clonare il repository Git di IoT Edge, che include script per generare certificati demo. Usare il comando git clone o scaricare il file ZIP.

    git clone https://github.com/Azure/iotedge.git
    
  3. Creare una directory e copiare lì gli script del certificato. Tutti i file di certificato e chiave vengono 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 è lo stesso.

  4. Impostare i criteri di esecuzione di PowerShell per eseguire gli script.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Importare le funzioni usate dagli script nello spazio dei nomi globale di PowerShell.

    . .\ca-certs.ps1
    

    Nella finestra di PowerShell viene visualizzato un avviso che indica che i certificati generati da questo script sono solo per i test e non devono essere usati negli scenari di produzione.

  6. 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

Esegui questo programma per generare un certificato radice CA. Questo certificato è necessario per ogni passaggio di questo articolo.

Utilizzare il certificato CA radice per generare altri certificati demo da utilizzare nel test di uno scenario IoT Edge. È possibile usare lo stesso certificato CA radice per creare certificati demo per più dispositivi IoT Edge o downstream.

Se nella cartella di lavoro è già presente un certificato CA radice, non crearne uno nuovo. La creazione di un nuovo certificato CA radice sovrascrive quella precedente e tutti i certificati downstream creati dal certificato precedente non funzionano più. Se hai bisogno di più certificati CA radice, devi gestirli in cartelle separate.

  1. Passare alla directory wrkdir di lavoro in cui inserire gli script di generazione del certificato.

  2. Creare il certificato CA radice e firmare un certificato intermedio. I certificati vengono inseriti nella directory di lavoro.

    New-CACertsCertChain rsa
    

    Questo script crea diversi file di certificato e chiave. Quando gli articoli richiedono il certificato di CA radice, utilizzare questo file:

    certs\azure-iot-test-only.root.ca.cert.pem

Questo certificato è necessario prima di 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.

  1. Passare alla directory wrkdir di lavoro con gli script di generazione del certificato e il certificato CA radice.

  2. Creare il certificato di identità del dispositivo IoT Edge e la chiave privata con il comando seguente:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    Il nome che inserisci per questo comando è l'ID del dispositivo per il dispositivo IoT Edge nell'IoT Hub.

  3. Il nuovo comando di identità del dispositivo crea diversi file di certificato e di chiave:

    TIPO Documento 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 CA Edge consente al dispositivo IoT Edge di verificarne l'identità nei dispositivi downstream. Ignorare questa sezione se non si connettono dispositivi downstream a IoT Edge.

Il certificato della CA Edge crea anche certificati per i moduli in esecuzione nel dispositivo, ma il runtime di IoT Edge può creare certificati temporanei se la CA Edge non è configurata. Posizionare i certificati CA Edge nella sezione CA Edge del config.toml file nel dispositivo IoT Edge. Per altre informazioni, vedere Informazioni sulla modalità di utilizzo dei certificati da parte di Azure IoT Edge.

  1. Passare alla directory di lavoro wrkdir con gli script di generazione di certificati e il certificato della CA radice.

  2. Creare il certificato della CA e la chiave privata di IoT Edge con il comando seguente. Immettere un nome per il certificato della CA. Non usare lo stesso nome del parametro nome host nel file di configurazione o l'ID del dispositivo nell'hub IoT per il comando New-CACertsEdgeDevice .

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Questo comando crea diversi file di certificato e di chiave. Copiare il certificato e la coppia di chiavi seguenti nel dispositivo IoT Edge e farvi riferimento nel file di configurazione:

    • certs\iot-edge-device-<CA cert name>-full-chain.cert.pem
    • private\iot-edge-device-<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.

  1. Passare alla directory di lavoro wrkdir con gli script di generazione di certificati e il certificato della CA radice.

  2. 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
  3. 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.

  1. Caricare il file del certificato della CA radice dalla directory di lavoro certs\azure-iot-test-only.root.ca.cert.pem nell'hub IoT.

  2. 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>"
    
  3. 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