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

Si applica a:  icona Sì IoT Edge 1,1 altre versioni: IOT Edge 1,2

Si applica a:  icona Sì IoT Edge 1,2 altre versioni: IOT Edge 1,1

IoT Edge dispositivi richiedono certificati per la comunicazione sicura tra il runtime, i moduli e tutti i dispositivi downstream. Se non si dispone di un'autorità di certificazione per creare i certificati necessari, è possibile usare i certificati demo per provare le funzionalità IoT Edge nell'ambiente di test. Questo articolo descrive la funzionalità degli script di generazione dei certificati IoT Edge per il test.

Questi certificati scadono tra 30 giorni e non devono essere usati in nessuno scenario di produzione.

È possibile creare certificati in qualsiasi computer e quindi copiarli nel dispositivo IoT Edge dispositivo. È più semplice usare il computer primario per creare i certificati anziché generarli nel dispositivo IoT Edge stesso. Usando il computer primario, è possibile configurare gli script una sola volta e quindi usarli per creare certificati per più dispositivi.

Seguire questa procedura per creare certificati demo per testare lo scenario IoT Edge seguente:

  1. Configurare gli script per la generazione di certificati nel dispositivo.
  2. Creare il certificato della CA radice utilizzato per firmare tutti gli altri certificati per lo scenario.
  3. Generare i certificati necessari per lo scenario da testare:

Prerequisiti

Un computer di sviluppo con Git installato.

Configurare gli script

Il repository IoT Edge su GitHub include script di generazione di certificati che è possibile usare per creare certificati dimostrativi. In questa sezione vengono fornite istruzioni per preparare gli script da eseguire nel computer, in Windows o Linux. Se si è in un computer Linux, passare a Configurare in Linux.

Configurare in Windows

Per creare certificati demo in un dispositivo Windows, è necessario installare OpenSSL, clonare gli script di generazione e configurarli per l'esecuzione in locale in PowerShell.

Installare OpenSSL

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

Esistono diversi modi per installare OpenSSL, incluse le opzioni seguenti:

  • Più semplice: Scaricare e installare eventuali file binari OpenSSLdi 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.

    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. Il completamento dell'installazione richiede in genere 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 Azure IoT Edge repository Git contiene script che è possibile usare per generare certificati di test. In questa sezione si clona il IoT Edge ed esegue gli script.

  1. Aprire una finestra di PowerShell in modalità amministratore.

  2. 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
    
  3. Passare alla directory che si vuole usare, In questo articolo questa directory verrà chiamata <WRKDIR> . Tutti i certificati e le chiavi verranno creati in questa directory di lavoro.

  4. Copiare i file di configurazione e script dal repo clonato nella directory di lavoro.

    copy <path>\iotedge\tools\CACertificates\*.cnf .
    copy <path>\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    Se il repo è stato scaricato come FILE ZIP, il nome della cartella è iotedge-master e il resto del percorso è lo stesso.

  5. Abilitare PowerShell per l'esecuzione degli script.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  6. Portare 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 in scenari di produzione.

  7. Verificare che OpenSSL sia stato installato correttamente e assicurarsi che non si verifichino conflitti di nome con i certificati esistenti. In caso di problemi, l'output dello script dovrebbe descrivere come risolverli nel sistema.

    Test-CACertsPrerequisites
    

Configurare in Linux

Per creare certificati demo in un dispositivo Windows, è necessario clonare gli script di generazione e configurarli per l'esecuzione in locale in Bash.

  1. Clonare il repository Git IoT Edge che contiene gli script per generare certificati demo.

    git clone https://github.com/Azure/iotedge.git
    
  2. Passare alla directory che si vuole usare, Si fa riferimento a questa directory in tutto l'articolo come <WRKDIR> . Tutti i file di certificato e di chiave verranno creati in questa directory.

  3. Copiare i file di configurazione e script dal repository IoT Edge clonato alla directory di lavoro.

    cp <path>/iotedge/tools/CACertificates/*.cnf .
    cp <path>/iotedge/tools/CACertificates/certGen.sh .
    

Creare un certificato CA radice

Il certificato della CA radice viene usato per creare tutti gli altri certificati dimostrativi per testare uno scenario IoT Edge radice. È possibile continuare a 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. Il nuovo certificato ca radice sovrascriverà il vecchio e tutti i certificati downstream rilasciati da quello precedente smetteranno di funzionare. Se si vogliono più certificati CA radice, assicurarsi di gestirli in cartelle separate.

Prima di procedere con i passaggi descritti in questa sezione, seguire la procedura descritta nella sezione Configurare gli script per preparare una directory di lavoro con gli script di generazione del certificato demo.

Windows

  1. Passare alla directory di lavoro in cui sono stati inseriti gli script di generazione del certificato.

  2. Creare il certificato della CA radice e fare in modo che firmi un certificato intermedio. I certificati vengono tutti inseriti nella directory di lavoro.

    New-CACertsCertChain rsa
    

    Questo comando script crea diversi file di certificato e chiave, ma quando gli articoli chiedono il certificato della CA radice, usare il file seguente:

    • <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem

    Questo certificato è necessario prima di poter creare altri certificati per i dispositivi IoT Edge e foglia, come descritto nelle sezioni successive.

Linux

  1. Passare alla directory di lavoro in cui sono stati inseriti gli script di generazione del certificato.

  2. Creare il certificato CA radice e un certificato intermedio.

    ./certGen.sh create_root_and_intermediate
    

    Questo comando script crea diversi file di certificato e chiave, ma quando gli articoli chiedono il certificato della CA radice, usare il file seguente:

    • <WRKDIR>/certs/azure-iot-test-only.root.ca.cert.pem

Creare IoT Edge certificati di identità del dispositivo

I certificati di identità del dispositivo vengono usati per effettuare IoT Edge dispositivi se si sceglie di usare l'autenticazione del certificato X.509. Questi certificati funzionano indipendentemente dal fatto che si usi il provisioning manuale o il provisioning automatico tramite il hub IoT di Azure Device Provisioning Service (DPS).

I certificati di identità del dispositivo vengono rilasciati nella sezione Provisioning del file di configurazione nel IoT Edge dispositivo.

Prima di procedere con i passaggi descritti in questa sezione, seguire la procedura descritta nelle sezioni Configurare gli script e Creare un certificato CA radice.

Windows

Creare il certificato IoT Edge dispositivo e la chiave privata con il comando seguente:

New-CACertsEdgeDeviceIdentity "<name>"

Il nome passato a questo comando sarà l'ID dispositivo per il dispositivo IoT Edge nell'hub IoT.

Il nuovo comando di identità del dispositivo crea diversi file di certificato e chiave, tra cui tre che verranno utilizzati durante la creazione di una registrazione singola in DPS e l'installazione del runtime IoT Edge dispositivo:

  • <WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem
  • <WRKDIR>\private\iot-edge-device-identity-<name>.key.pem

Per la registrazione singola del IoT Edge nel servizio Device Backup, usare iot-edge-device-identity-<name>.cert.pem . Per registrare il dispositivo IoT Edge nell'hub IoT, usare i iot-edge-device-identity-<name>-full-chain.cert.pem certificati iot-edge-device-identity-<name>.key.pem e . Per altre informazioni, vedere Creare ed effettuare il provisioning di un IoT Edge usando certificati X.509.

Linux

Creare il certificato IoT Edge dispositivo e la chiave privata con il comando seguente:

./certGen.sh create_edge_device_identity_certificate "<name>"

Il nome passato a questo comando sarà l'ID dispositivo per il dispositivo IoT Edge nell'hub IoT.

Lo script crea diversi file di certificato e chiave, tra cui tre che verranno utilizzati durante la creazione di una registrazione singola in DPS e l'installazione del runtime IoT Edge seguente:

  • <WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>/certs/iot-edge-device-identity-<name>.cert.pem
  • <WRKDIR>/private/iot-edge-device-identity-<name>.key.pem

Creare certificati IOT EDGE dispositivo

Ogni IoT Edge che va in produzione necessita di un certificato CA del dispositivo a cui viene fatto riferimento dal file di configurazione. Il certificato CA del dispositivo è responsabile della creazione di certificati per i moduli in esecuzione nel dispositivo. È necessario anche per gli scenari gateway, perché il certificato CA del dispositivo è il modo in cui il dispositivo IoT Edge verifica la propria identità nei dispositivi downstream.

I certificati CA del dispositivo vengono nella sezione Certificate del file config.yaml nel IoT Edge dispositivo.

I certificati della CA del dispositivo passano alla sezione DELLA CA perimetrale del file config.toml nel IoT Edge dispositivo.

Prima di procedere con i passaggi descritti in questa sezione, seguire la procedura descritta nelle sezioni Configurare gli script e Creare un certificato CA radice.

Windows

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

  2. Creare il certificato IOT EDGE dispositivo e la chiave privata con il comando seguente. Specificare un nome per il certificato della CA.

    New-CACertsEdgeDevice "<CA cert name>"
    

    Questo comando crea diversi file di certificato e chiave. Il certificato e la coppia di chiavi seguenti devono essere copiati in un dispositivo IoT Edge e a cui viene fatto riferimento nel file di configurazione:

    • <WRKDIR>\certs\iot-edge-device-<CA cert name>-full-chain.cert.pem
    • <WRKDIR>\private\iot-edge-device-<CA cert name>.key.pem

Il nome passato al comando New-CACertsEdgeDevice non deve essere uguale al parametro hostname nel file di configurazione o all'ID del dispositivo nell'hub IoT.

Linux

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

  2. Creare il certificato IOT EDGE dispositivo e la chiave privata con il comando seguente. Specificare un nome per il certificato della CA.

    ./certGen.sh create_edge_device_ca_certificate "<CA cert name>"
    

    Questo comando script crea diversi file di certificato e chiave. Il certificato e la coppia di chiavi seguenti devono essere copiati in un dispositivo IoT Edge e a cui viene fatto riferimento nel file di configurazione:

    • <WRKDIR>/certs/iot-edge-device-<CA cert name>-full-chain.cert.pem
    • <WRKDIR>/private/iot-edge-device-<CA cert name>.key.pem

Il nome passato al comando create_edge_device_ca_certificate deve essere diverso dal parametro hostname nel file di configurazione o dall'ID del dispositivo nell'hub IoT.

Creare certificati di dispositivo downstream

Se si configura un dispositivo IoT downstream per uno scenario gateway e si vuole usare l'autenticazione X.509, è possibile generare certificati demo per il dispositivo downstream. Se si vuole usare l'autenticazione con chiave simmetrica, non è necessario creare certificati aggiuntivi per il dispositivo downstream. Esistono due modi per autenticare un dispositivo IoT usando certificati X.509: usando certificati autofirmati o certificati firmati da autorità di certificazione (CA). Per l'opzione di autenticazione X.509 autofirmato, detta anche autenticazione tramite 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'opzione di autenticazione X.509 firmato dall'Autorità di certificazione, è necessario un certificato CA radice registrato nell'hub IoT che si usa per firmare i certificati per il dispositivo IoT. Qualsiasi dispositivo che usa un certificato emesso dal certificato della CA radice o uno dei relativi certificati intermedi sarà autorizzato a eseguire l'autenticazione.

Gli script di generazione dei certificati consentono di creare certificati demo per testare uno di questi scenari di autenticazione.

Prima di procedere con i passaggi descritti in questa sezione, seguire la procedura descritta nelle sezioni Configurare gli script e Creare un certificato CA radice.

Certificati autofirmati

Quando si autentica un dispositivo IoT con certificati autofirmati, è necessario creare certificati del dispositivo basati sul certificato CA radice per la soluzione. Si recupera quindi un'"impronta digitale" 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.

Windows

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

  2. Creare due certificati (primario e secondario) per il dispositivo downstream. Una convenzione di denominazione semplice da usare è la creazione di certificati con il nome del dispositivo IoT e quindi l'etichetta primaria o secondaria. Ad esempio:

    New-CACertsDevice "<device name>-primary"
    New-CACertsDevice "<device name>-secondary"
    

    Questo comando script crea diversi file di certificato e 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:

    • <WRKDIR>\certs\iot-device-<device name>-primary-full-chain.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-secondary-full-chain.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-primary.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-secondary.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-primary.cert.pfx
    • <WRKDIR>\certs\iot-device-<device name>-secondary.cert.pfx
    • <WRKDIR>\private\iot-device-<device name>-primary.key.pem
    • <WRKDIR>\private\iot-device-<device name>-secondary.key.pem
  3. Recuperare l'impronta digitale SHA1 (denominata identificazione personale nei contesti dell'hub IoT) da ogni certificato. L'impronta digitale è una stringa di 40 caratteri esadecimali. Usare il comando OpenSSL seguente per visualizzare il certificato e trovare l'impronta digitale:

    openssl x509 -in <WRKDIR>\certs\iot-device-<device name>-primary.cert.pem -text -fingerprint
    

    Eseguire questo comando due volte, una volta per il certificato primario e una per il certificato secondario. Si forniscono le impronte digitali per entrambi i certificati quando si registra un nuovo dispositivo IoT usando certificati X.509 autofirmati.

Linux

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

  2. Creare due certificati (primario e secondario) per il dispositivo downstream. Una convenzione di denominazione semplice da usare è la creazione di certificati con il nome del dispositivo IoT e quindi l'etichetta primaria o secondaria. Ad esempio:

    ./certGen.sh create_device_certificate "<device name>-primary"
    ./certGen.sh create_device_certificate "<device name>-secondary"
    

    Questo comando script crea diversi file di certificato e 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:

    • <WRKDIR>/certs/iot-device-<device name>-primary-full-chain.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-secondary-full-chain.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-primary.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-secondary.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-primary.cert.pfx
    • <WRKDIR>/certs/iot-device-<device name>-secondary.cert.pfx
    • <WRKDIR>/private/iot-device-<device name>-primary.key.pem
    • <WRKDIR>/private/iot-device-<device name>-secondary.key.pem
  3. Recuperare l'impronta digitale SHA1 (denominata identificazione personale nei contesti dell'hub IoT) da ogni certificato. L'impronta digitale è una stringa di 40 caratteri esadecimali. Usare il comando OpenSSL seguente per visualizzare il certificato e trovare l'impronta digitale:

    openssl x509 -in <WRKDIR>/certs/iot-device-<device name>-primary.cert.pem -text -fingerprint | sed 's/[:]//g'
    

    Quando si registra un nuovo dispositivo IoT usando certificati X.509 autofirmati, si fornisce sia l'impronta digitale primaria che l'impronta digitale secondaria.

Certificati firmati dall'autorità di certificazione

Quando si autentica un dispositivo IoT con certificati autofirmati, è necessario caricare il certificato della CA radice per la soluzione nell'hub IoT. Eseguire quindi una verifica per dimostrare all'hub IoT di essere proprietari del certificato della CA radice. Infine, si usa lo stesso certificato 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 per i 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.

Windows

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

  2. 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 è registrato il dispositivo nell'hub IoT.

    New-CACertsDevice "<device id>"
    

    Questo comando script crea diversi file di certificato e chiave. Le coppie di certificati e chiavi seguenti devono essere copiate nel dispositivo IoT downstream e fare riferimento alle applicazioni che si connettono all'hub IoT:

    • <WRKDIR>\certs\iot-device-<device id>.cert.pem
    • <WRKDIR>\certs\iot-device-<device id>.cert.pfx
    • <WRKDIR>\certs\iot-device-<device id>-full-chain.cert.pem
    • <WRKDIR>\private\iot-device-<device id>.key.pem

Linux

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

  2. Usare il codice fornito nel portale di Azure per verificare di essere proprietari del certificato della CA radice.

    ./certGen.sh create_verification_certificate "<verification code>"
    
  3. Creare una catena di certificati per il dispositivo downstream. Usare lo stesso ID dispositivo con cui è registrato il dispositivo nell'hub IoT.

    ./certGen.sh create_device_certificate "<device id>"
    

    Questo comando script crea diversi file di certificato e chiave. Le coppie di certificati e chiavi seguenti devono essere copiate nel dispositivo IoT downstream e fare riferimento alle applicazioni che si connettono all'hub IoT:

    • <WRKDIR>/certs/iot-device-<device id>.cert.pem
    • <WRKDIR>/certs/iot-device-<device id>.cert.pfx
    • <WRKDIR>/certs/iot-device-<device id>-full-chain.cert.pem
    • <WRKDIR>/private/iot-device-<device id>.key.pem