Gestire i certificati in un dispositivo IoT EdgeManage certificates on an IoT Edge device

Si applica a:  icona Sì IoT Edge 1,1 altre versioni: IOT Edge 1,2Applies to: yes icon IoT Edge 1.1 Other versions: IoT Edge 1.2

Si applica a:  icona Sì IoT Edge 1,2 altre versioni: IOT Edge 1,1Applies to: yes icon IoT Edge 1.2 Other versions: IoT Edge 1.1

Tutti i dispositivi IoT Edge usano i certificati per creare connessioni sicure tra il runtime e i moduli in esecuzione nel dispositivo.All IoT Edge devices use certificates to create secure connections between the runtime and any modules running on the device. IoT Edge i dispositivi che funzionano come gateway usano questi stessi certificati per connettersi anche ai dispositivi downstream.IoT Edge devices functioning as gateways use these same certificates to connect to their downstream devices, too.

Installare i certificati di produzioneInstall production certificates

Quando si installa per la prima volta IoT Edge e si effettua il provisioning del dispositivo, il dispositivo viene configurato con certificati temporanei per poter testare il servizio.When you first install IoT Edge and provision your device, the device is set up with temporary certificates so that you can test the service. Questi certificati temporanei scadono entro 90 giorni oppure possono essere reimpostati riavviando il computer.These temporary certificates expire in 90 days, or can be reset by restarting your machine. Quando ci si sposta in uno scenario di produzione o si vuole creare un dispositivo gateway, è necessario fornire i propri certificati.Once you move into a production scenario, or you want to create a gateway device, you need to provide your own certificates. Questo articolo illustra i passaggi per installare i certificati nei dispositivi IoT Edge.This article demonstrates the steps to install certificates on your IoT Edge devices.

Per altre informazioni sui diversi tipi di certificati e sui relativi ruoli, vedere informazioni su come Azure IOT Edge usa i certificati.To learn more about the different types of certificates and their roles, see Understand how Azure IoT Edge uses certificates.

Nota

Il termine "CA radice" usato in questo articolo si riferisce al certificato pubblico dell'autorità superiore della catena di certificati per la soluzione Internet delle cose.The term "root CA" used throughout this article refers to the topmost authority public certificate of the certificate chain for your IoT solution. Non è necessario utilizzare la radice del certificato di un'autorità di certificazione con diffusore o la radice dell'autorità di certificazione dell'organizzazione.You do not need to use the certificate root of a syndicated certificate authority, or the root of your organization's certificate authority. In molti casi, si tratta in realtà di un certificato pubblico CA intermedio.In many cases, it is actually an intermediate CA public certificate.

PrerequisitiPrerequisites

  • Un dispositivo IoT Edge.An IoT Edge device.

    Se non si dispone di un dispositivo IoT Edge configurato, è possibile crearne uno in una macchina virtuale di Azure.If you don't have an IoT Edge device set up, you can create one in an Azure virtual machine. Per creare un dispositivo Linux virtuale o creare un dispositivo Windows virtuale, seguire la procedura descritta in uno degli articoli introduttivi.Follow the steps in one of the quickstart articles to Create a virtual Linux device or Create a virtual Windows device.

  • Disporre di un certificato dell'autorità di certificazione (CA) radice, autofirmato o acquistato da un'autorità di certificazione commerciale attendibile come Baltimora, Verisign, DigiCert o GlobalSign.Have a root certificate authority (CA) certificate, either self-signed or purchased from a trusted commercial certificate authority like Baltimore, Verisign, DigiCert, or GlobalSign.

    Se non si ha ancora un'autorità di certificazione radice, ma si vuole provare IoT Edge funzionalità che richiedono certificati di produzione (ad esempio, scenari di gateway), è possibile creare certificati demo per testare le funzionalità del dispositivo IOT Edge.If you don't have a root certificate authority yet, but want to try out IoT Edge features that require production certificates (like gateway scenarios) you can Create demo certificates to test IoT Edge device features.

Creare certificati di produzioneCreate production certificates

Per creare i file seguenti, è necessario usare la propria autorità di certificazione:You should use your own certificate authority to create the following files:

  • CA radiceRoot CA
  • Certificato CA del dispositivoDevice CA certificate
  • Chiave privata della CA del dispositivoDevice CA private key

In questo articolo si fa riferimento alla CA radice non è l'autorità di certificazione in primo piano per un'organizzazione.In this article, what we refer to as the root CA is not the topmost certificate authority for an organization. Si tratta dell'autorità di certificazione superiore per lo scenario IoT Edge, che il modulo dell'hub IoT Edge, i moduli utente e tutti i dispositivi downstream usano per stabilire una relazione di trust tra loro.It's the topmost certificate authority for the IoT Edge scenario, which the IoT Edge hub module, user modules, and any downstream devices use to establish trust between each other.

Nota

Attualmente, una limitazione in libiothsm impedisce l'utilizzo di certificati che scadono il 1 ° gennaio 2038 o successivo.Currently, a limitation in libiothsm prevents the use of certificates that expire on or after January 1, 2038.

Per visualizzare un esempio di questi certificati, esaminare gli script che creano certificati demo in gestione dei certificati della CA di test per esempi ed esercitazioni.To see an example of these certificates, review the scripts that create demo certificates in Managing test CA certificates for samples and tutorials.

Installare i certificati nel dispositivoInstall certificates on the device

Installare la catena di certificati nel dispositivo IoT Edge e configurare il runtime IoT Edge per fare riferimento ai nuovi certificati.Install your certificate chain on the IoT Edge device and configure the IoT Edge runtime to reference the new certificates.

Copiare i tre file di certificato e di chiave nel dispositivo IoT Edge.Copy the three certificate and key files onto your IoT Edge device. È possibile usare un servizio come Azure Key Vault o una funzione come il protocollo Secure Copy per spostare i file di certificato.You can use a service like Azure Key Vault or a function like Secure copy protocol to move the certificate files. Se i certificati sono stati generati nel dispositivo IoT Edge stesso, è possibile ignorare questo passaggio e usare il percorso della directory di lavoro.If you generated the certificates on the IoT Edge device itself, you can skip this step and use the path to the working directory.

Se si usa IoT Edge per Linux in Windows, è necessario usare la chiave SSH disponibile nel id_rsa file di Azure IOT Edge per autenticare i trasferimenti di file tra il sistema operativo host e la macchina virtuale Linux.If you are using IoT Edge for Linux on Windows, you need to use the SSH key located in the Azure IoT Edge id_rsa file to authenticate file transfers between the host OS and the Linux virtual machine. È possibile eseguire un SCP autenticato usando il comando seguente:You can do an authenticated SCP using the following command:

C:\WINDOWS\System32\OpenSSH\scp.exe -i 'C:\Program Files\Azure IoT Edge\id_rsa' <PATH_TO_SOURCE_FILE> iotedge-user@<VM_IP>:<PATH_TO_FILE_DESTINATION>

Nota

È possibile eseguire una query sull'indirizzo IP della macchina virtuale Linux tramite il Get-EflowVmAddr comando.The Linux virtual machine's IP address can be queried via the Get-EflowVmAddr command.

Se sono stati usati gli script di esempio per creare i certificati demo, copiare i file seguenti nel dispositivo IoT-Edge:If you used the sample scripts to Create demo certificates, copy the following files onto your IoT-Edge device:

  • Certificato CA dispositivo: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pemDevice CA certificate: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pem
  • Chiave privata CA del dispositivo: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pemDevice CA private key: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pem
  • CA radice: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pemRoot CA: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem
  1. Aprire il file di configurazione del daemon di sicurezza di IoT Edge.Open the IoT Edge security daemon config file.

    • Linux e IoT Edge per Linux in Windows: /etc/iotedge/config.yamlLinux and IoT Edge for Linux on Windows: /etc/iotedge/config.yaml

    • Windows con i contenitori di Windows: C:\ProgramData\iotedge\config.yamlWindows using Windows containers: C:\ProgramData\iotedge\config.yaml

  2. Impostare le proprietà del certificato in config. YAML sul percorso dell'URI del file del certificato e dei file di chiave nel dispositivo IOT Edge.Set the certificate properties in config.yaml to the file URI path to the certificate and key files on the IoT Edge device. Rimuovere il # carattere prima delle proprietà del certificato per rimuovere il commento dalle quattro righe.Remove the # character before the certificate properties to uncomment the four lines. Verificare che la riga certificati: non includa spazi vuoti precedenti e che gli elementi nidificati siano rientrati in due spazi.Make sure the certificates: line has no preceding whitespace and that nested items are indented by two spaces. Ad esempio:For example:

    • Linux e IoT Edge per Linux in Windows:Linux and IoT Edge for Linux on Windows:

      certificates:
         device_ca_cert: "file:///<path>/<device CA cert>"
         device_ca_pk: "file:///<path>/<device CA key>"
         trusted_ca_certs: "file:///<path>/<root CA cert>"
      
    • Windows con i contenitori di Windows:Windows using Windows containers:

      certificates:
         device_ca_cert: "file:///C:/<path>/<device CA cert>"
         device_ca_pk: "file:///C:/<path>/<device CA key>"
         trusted_ca_certs: "file:///C:/<path>/<root CA cert>"
      
  3. Nei dispositivi Linux, assicurarsi che l'utente iotedge disponga delle autorizzazioni di lettura per la directory che contiene i certificati.On Linux devices, make sure that the user iotedge has read permissions for the directory holding the certificates.

  4. Se sono stati usati altri certificati per IoT Edge sul dispositivo prima, eliminare i file nelle due directory seguenti prima di avviare o riavviare IoT Edge:If you've used any other certificates for IoT Edge on the device before, delete the files in the following two directories before starting or restarting IoT Edge:

    • Linux e IoT Edge per Linux in Windows: /var/lib/iotedge/hsm/certs e /var/lib/iotedge/hsm/cert_keysLinux and IoT Edge for Linux on Windows: /var/lib/iotedge/hsm/certs and /var/lib/iotedge/hsm/cert_keys

    • Windows con i contenitori di Windows: C:\ProgramData\iotedge\hsm\certs e C:\ProgramData\iotedge\hsm\cert_keysWindows using Windows containers: C:\ProgramData\iotedge\hsm\certs and C:\ProgramData\iotedge\hsm\cert_keys

  1. Aprire il file di configurazione del daemon di sicurezza IoT Edge: /etc/aziot/config.tomlOpen the IoT Edge security daemon config file: /etc/aziot/config.toml

  2. Trovare il trust_bundle_cert parametro all'inizio del file.Find the trust_bundle_cert parameter at the beginning of the file. Rimuovere il commento da questa riga e fornire l'URI del file al certificato CA radice nel dispositivo.Uncomment this line, and provide the file URI to the root CA certificate on your device.

    trust_bundle_cert = "file:///<path>/<root CA cert>"
    
  3. Trovare la [edge_ca] sezione nel file config. toml.Find the [edge_ca] section in the config.toml file. Rimuovere il commento dalle righe di questa sezione e fornire i percorsi URI del file per i file di certificato e di chiave nel dispositivo IoT Edge.Uncomment the lines in this section and provide the file URI paths for the certificate and key files on the IoT Edge device.

    [edge_ca]
    cert = "file:///<path>/<device CA cert>"
    pk = "file:///<path>/<device CA key>"
    
  4. Assicurarsi che l'utente iotedge disponga delle autorizzazioni di lettura per la directory che contiene i certificati.Make sure that the user iotedge has read permissions for the directory holding the certificates.

  5. Se sono stati usati altri certificati per IoT Edge sul dispositivo prima, eliminare i file nelle due directory seguenti prima di avviare o riavviare IoT Edge:If you've used any other certificates for IoT Edge on the device before, delete the files in the following two directories before starting or restarting IoT Edge:

    • /var/lib/aziot/certd/certs
    • /var/lib/aziot/keyd/keys

Personalizzare la durata del certificatoCustomize certificate lifetime

IoT Edge genera automaticamente i certificati sul dispositivo in diversi casi, tra cui:IoT Edge automatically generates certificates on the device in several cases, including:

  • Se non si forniscono certificati di produzione personalizzati quando si installa e si esegue il provisioning di IoT Edge, IoT Edge Security Manager genera automaticamente un certificato della CA del dispositivo.If you don't provide your own production certificates when you install and provision IoT Edge, the IoT Edge security manager automatically generates a device CA certificate. Questo certificato autofirmato è destinato solo a scenari di sviluppo e test, non alla produzione.This self-signed certificate is only meant for development and testing scenarios, not production. Il certificato scade dopo 90 giorni.This certificate expires after 90 days.
  • Il IoT Edge Security Manager genera anche un certificato CA del carico di lavoro firmato dal certificato della CA del dispositivoThe IoT Edge security manager also generates a workload CA certificate signed by the device CA certificate

Per altre informazioni sulla funzione dei diversi certificati in un dispositivo IoT Edge, vedere informazioni su come Azure IOT Edge usa i certificati.For more information about the function of the different certificates on an IoT Edge device, see Understand how Azure IoT Edge uses certificates.

Per questi due certificati generati automaticamente, è possibile impostare il flag auto_generated_ca_lifetime_days nel file di configurazione per configurare il numero di giorni per la durata dei certificati.For these two automatically generated certificates, you have the option of setting the auto_generated_ca_lifetime_days flag in the config file to configure the number of days for the lifetime of the certificates.

Nota

È disponibile un terzo certificato generato automaticamente creato dal gestore della sicurezza IoT Edge, il certificato del server dell'hub IOT Edge.There is a third auto-generated certificate that the IoT Edge security manager creates, the IoT Edge hub server certificate. Questo certificato ha sempre una durata di 90 giorni, ma viene rinnovato automaticamente prima della scadenza.This certificate always has a 90 day lifetime, but is automatically renewed before expiring. Il valore di auto_generated_ca_lifetime_days non influisce sul certificato.The auto_generated_ca_lifetime_days value doesn't affect this certificate.

Alla scadenza dopo il numero di giorni specificato, è necessario riavviare IoT Edge per rigenerare il certificato della CA del dispositivo.Upon expiry after the specified number of days, IoT Edge has to be restarted to regenerate the device CA certificate. Il certificato della CA del dispositivo non verrà rinnovato automaticamente.The device CA certificate won't be renewed automatically.

  1. Per configurare la scadenza del certificato su un valore diverso da quello predefinito di 90 giorni, aggiungere il valore in giorni alla sezione certificati del file di configurazione.To configure the certificate expiration to something other than the default 90 days, add the value in days to the certificates section of the config file.

    certificates:
      device_ca_cert: "<ADD URI TO DEVICE CA CERTIFICATE HERE>"
      device_ca_pk: "<ADD URI TO DEVICE CA PRIVATE KEY HERE>"
      trusted_ca_certs: "<ADD URI TO TRUSTED CA CERTIFICATES HERE>"
      auto_generated_ca_lifetime_days: <value>
    

    Nota

    Attualmente, una limitazione in libiothsm impedisce l'utilizzo di certificati che scadono il 1 ° gennaio 2038 o successivo.Currently, a limitation in libiothsm prevents the use of certificates that expire on or after January 1, 2038.

  2. Eliminare il contenuto della hsm cartella per rimuovere tutti i certificati generati in precedenza.Delete the contents of the hsm folder to remove any previously generated certificates.

    • Linux e IoT Edge per Linux in Windows: /var/lib/iotedge/hsm/certs e /var/lib/iotedge/hsm/cert_keysLinux and IoT Edge for Linux on Windows: /var/lib/iotedge/hsm/certs and /var/lib/iotedge/hsm/cert_keys

    • Windows con i contenitori di Windows: C:\ProgramData\iotedge\hsm\certs e C:\ProgramData\iotedge\hsm\cert_keysWindows using Windows containers: C:\ProgramData\iotedge\hsm\certs and C:\ProgramData\iotedge\hsm\cert_keys

  3. Riavviare il servizio IoT Edge.Restart the IoT Edge service.

    • Linux e IoT Edge per Linux in Windows:Linux and IoT Edge for Linux on Windows:
    sudo systemctl restart iotedge
    
    • Windows con i contenitori di Windows:Windows using Windows containers:
    Restart-Service iotedge
    
  4. Confermare l'impostazione della durata.Confirm the lifetime setting.

    • Linux e IoT Edge per Linux in Windows:Linux and IoT Edge for Linux on Windows:
    sudo iotedge check --verbose
    
    • Windows con i contenitori di Windows:Windows using Windows containers:
    iotedge check --verbose
    

    Controllare l'output della preparazione per la produzione: verifica certificati , che elenca il numero di giorni prima della scadenza dei certificati della CA del dispositivo generati automaticamente.Check the output of the production readiness: certificates check, which lists the number of days until the automatically generated device CA certificates expire.

Passaggi successiviNext steps

L'installazione dei certificati in un dispositivo IoT Edge è un passaggio necessario prima di distribuire la soluzione nell'ambiente di produzione.Installing certificates on an IoT Edge device is a necessary step before deploying your solution in production. Scopri di più su come preparare la distribuzione della tua IOT Edge soluzione nell'ambiente di produzione.Learn more about how to Prepare to deploy your IoT Edge solution in production.