Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
IoT Edge 1.1
Importante
La data di fine del supporto di IoT Edge 1.1 è stata il 13 dicembre 2022. Controllare il ciclo di vita del prodotto Microsoft per informazioni su come è supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.
Questo articolo contiene istruzioni dettagliate per la configurazione di un dispositivo IoT Edge in grado di operare come gateway trasparente per consentire la comunicazione di altri dispositivi con l'hub IoT. Questo articolo usa il termine gateway IoT Edge per fare riferimento a un dispositivo IoT Edge configurato come gateway trasparente. Per altre informazioni, vedere Come usare un dispositivo IoT Edge come gateway.
Nota
In IoT Edge versioni 1.1 e precedenti un dispositivo IoT Edge non può essere downstream di un gateway IoT Edge.
I dispositivi downstream non possono usare il caricamento dei file.
Ci sono tre passaggi generali per configurare correttamente una connessione gateway trasparente. Questo articolo illustra il primo passaggio:
- Configurare il dispositivo gateway come server in modo che i dispositivi downstream possano connettersi in modo sicuro. Configurare il gateway per ricevere messaggi dai dispositivi downstream e instradarli alla destinazione corretta.
- Creare un'identità del dispositivo per il dispositivo downstream in modo che possa eseguire l'autenticazione con l'hub IoT. Configurare il dispositivo downstream per inviare messaggi tramite il dispositivo gateway. Per questi passaggi, vedere Autenticare un dispositivo downstream nell'hub IoT di Azure.
- Connettere il dispositivo downstream al dispositivo gateway e iniziare a inviare messaggi. Per questi passaggi, vedere Connettere un dispositivo downstream a un gateway Azure IoT Edge.
Affinché un dispositivo funga da gateway, deve connettersi in modo sicuro ai dispositivi downstream. Azure IoT Edge permette di usare un'infrastruttura a chiave pubblica (PKI) per configurare connessioni sicure tra dispositivi. Nel caso illustrato si consente la connessione di un dispositivo downstream a un dispositivo IoT Edge che funge da gateway trasparente. Per mantenere un livello di sicurezza ragionevole, il dispositivo downstream deve confermare l'identità del dispositivo gateway. Questo controllo delle identità impedisce ai dispositivi di connettersi a gateway potenzialmente dannosi.
Un dispositivo downstream può essere qualsiasi applicazione o piattaforma con un'identità creata con il servizio cloud dell'hub IoT di Azure . Queste applicazioni usano spesso Azure IoT SDK per dispositivi. Un dispositivo downstream può anche essere un'applicazione in esecuzione nel dispositivo gateway IoT Edge stesso. Tuttavia, un dispositivo IoT Edge non può essere downstream di un gateway IoT Edge.
È possibile creare qualsiasi infrastruttura di certificati che abilita la relazione di trust necessaria per la topologia dispositivo-gateway. In questo articolo si presuppone che la stessa configurazione del certificato usata per abilitare la sicurezza della CA X.509 nell'hub IoT, che prevede un certificato ca X.509 associato a un hub IoT specifico (l'hub IoT root CA), una serie di certificati firmati con questa CA e una CA per il dispositivo IoT Edge.
Nota
Il termine certificato CA radice usato in questi articoli si riferisce al certificato pubblico principale dell'autorità principale della catena di certificati PKI e non necessariamente alla radice del certificato di un'autorità di certificazione sindacata. In molti casi, si tratta in realtà di un certificato pubblico CA intermedio.
La procedura seguente illustra il processo di creazione e installazione dei certificati nelle posizioni corrette del gateway. È possibile usare qualsiasi computer per generare i certificati e quindi copiarli nel dispositivo IoT Edge.
Prerequisiti
Un dispositivo Linux o Windows con IoT Edge installato.
Se non si ha un dispositivo pronto, è possibile crearne uno in una macchina virtuale di Azure. Seguire la procedura descritta in Distribuire il primo modulo IoT Edge in un dispositivo Linux virtuale per creare un hub IoT, creare una macchina virtuale e configurare il runtime di IoT Edge.
Configurare il certificato ca del dispositivo
Tutti i gateway IoT Edge necessitano di un certificato della CA del dispositivo installato. Il demone di sicurezza di IoT Edge utilizza il certificato della CA del dispositivo IoT Edge per firmare un certificato CA di carico di lavoro, che a sua volta firma un certificato del server per l'hub IoT Edge. Il gateway presenta il certificato del server al dispositivo downstream durante l'avvio della connessione. Il dispositivo downstream verifica per assicurarsi che il certificato del server faccia parte di una catena di certificati che risale fino al certificato CA radice. Questo processo consente al dispositivo downstream di verificare che il gateway provenga da una fonte attendibile. Per altre informazioni, vedere Informazioni su come Azure IoT Edge usa i certificati.
Il certificato CA radice e il certificato della CA del dispositivo (con la relativa chiave privata) devono essere presenti nel dispositivo gateway IoT Edge e configurati nel file di configurazione di IoT Edge. Tenere presente che in questo caso il certificato CA radice indica l'autorità di certificazione più importante per questo scenario di IoT Edge. Il certificato CA del dispositivo gateway e i certificati dei dispositivi downstream devono fare riferimento allo stesso certificato CA radice.
Suggerimento
Il processo di installazione del certificato della CA radice e del certificato della CA del dispositivo su un dispositivo IoT Edge è anche spiegato in modo più dettagliato in Gestire i certificati in un dispositivo IoT Edge.
Preparare i file seguenti:
- Certificato CA radice
- Certificato CA del dispositivo
- Chiave privata della CA del dispositivo
Per gli scenari di produzione, è necessario generare questi file con un'autorità di certificazione personalizzata. Per gli scenari di sviluppo e test, è possibile usare i certificati demo.
Creare certificati demo
Se non si ha un'autorità di certificazione personalizzata e si vogliono usare i certificati demo, seguire le istruzioni in Creare certificati demo per testare le funzionalità del dispositivo IoT Edge per creare i file. In tale pagina è necessario eseguire i passaggi seguenti:
- Per iniziare, configurare gli script per la generazione di certificati nel dispositivo.
- Creare un certificato CA radice. Al termine di queste istruzioni, si avrà un certificato CA root
<path>/certs/azure-iot-test-only.root.ca.cert.pem. - Creare certificati della CA del dispositivo IoT Edge. Alla fine di queste istruzioni, si avrà un certificato della CA del dispositivo
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pemla relativa chiave privata<path>/private/iot-edge-device-ca-<cert name>.key.pem.
Copiare i certificati nel dispositivo
Controllare che il certificato soddisfi i requisiti di formato.
Se i certificati sono stati creati in un computer diverso, copiarli nel dispositivo IoT Edge. È possibile usare un'unità USB, un servizio come Azure Key Vault o una funzione come La copia sicura dei file.
Spostare i file nella directory preferita per certificati e chiavi. Usare
/var/aziot/certsper i certificati e/var/aziot/secretsper le chiavi.Creare i certificati e le directory delle chiavi e impostare le autorizzazioni. È consigliabile archiviare i certificati e le chiavi nella directory
/var/aziotpreferita. Usare/var/aziot/certsper i certificati e/var/aziot/secretsper le chiavi.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secretsModificare la proprietà e le autorizzazioni dei certificati e delle chiavi.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Configurare i certificati nel dispositivo
Nel dispositivo IoT Edge aprire il file di configurazione del daemon di sicurezza.
- Windows:
C:\ProgramData\iotedge\config.yaml - Linux:
/etc/iotedge/config.yaml - IoT Edge per Linux in Windows:
/etc/iotedge/config.yaml
Suggerimento
Se si usa IoT Edge per Linux in Windows (EFLOW), è necessario connettersi alla macchina virtuale EFLOW e modificare il file all'interno della macchina virtuale. È possibile connettersi alla macchina virtuale EFLOW usando il cmdlet di PowerShell
Connect-EflowVme quindi usare l'editor preferito.- Windows:
Trovare la sezione Impostazioni certificato del file. Rimuovi il commento dalle quattro righe che iniziano con certificates: e fornisci gli URI dei file ai tuoi tre file come valori per le seguenti proprietà.
- device_ca_cert: certificato ca del dispositivo
- device_ca_pk: chiave privata della CA del dispositivo
- trusted_ca_certs: certificato CA radice
Assicurarsi che non siano presenti spazi vuoti precedenti sulla riga dei certificati: e che le altre righe siano rientrate con due spazi.
Salva e chiudi il file.
Riavviare IoT Edge.
- Windows:
Restart-Service iotedge - Linux:
sudo systemctl restart iotedge - IoT Edge per Linux in Windows:
sudo systemctl restart iotedge
- Windows:
Distribuire edgeHub e indirizzare i messaggi
I dispositivi downstream inviano dati di telemetria e messaggi al dispositivo gateway, in cui il modulo hub IoT Edge è responsabile del routing delle informazioni ad altri moduli o all'hub IoT. Per preparare il dispositivo gateway per questa funzione, assicurarsi che:
Il modulo hub IoT Edge viene distribuito nel dispositivo.
Quando si installa IoT Edge in un dispositivo per la prima volta, viene avviato automaticamente un solo modulo di sistema, ovvero l'agente IoT Edge. Dopo aver creato la prima distribuzione per un dispositivo, viene avviato anche il secondo modulo di sistema e l'hub IoT Edge. Se il modulo edgeHub non è in esecuzione nel dispositivo, creare una distribuzione per il dispositivo.
Il modulo hub IoT Edge include route configurate per gestire i messaggi in ingresso dai dispositivi downstream.
Il dispositivo gateway deve disporre di una route per gestire i messaggi dai dispositivi downstream. In caso contrario, tali messaggi non verranno elaborati. È possibile inviare i messaggi ai moduli nel dispositivo gateway o direttamente all'hub IoT.
Per distribuire il modulo hub IoT Edge e configurarlo con route per gestire i messaggi in arrivo dai dispositivi downstream, seguire questa procedura:
Nel portale di Azure passare all'hub IoT.
Passare a Dispositivi nel menu Gestione dei dispositivi e selezionare il dispositivo IoT Edge da usare come gateway.
Selezionare Imposta moduli.
Nella pagina Moduli è possibile aggiungere tutti i moduli da distribuire nel dispositivo gateway. Ai fini di questo articolo, ci concentriamo sulla configurazione e sulla distribuzione del modulo edgeHub, che non deve essere impostato in modo esplicito in questa pagina.
Seleziona Avanti: Percorsi.
Nella pagina Route assicurarsi che sia presente una route per gestire i messaggi provenienti dai dispositivi downstream. Per esempio:
Route che invia tutti i messaggi, sia da un modulo che da un dispositivo downstream, all'hub IoT:
-
Nome:
allMessagesToHub -
Valore:
FROM /messages/* INTO $upstream
-
Nome:
Route che invia tutti i messaggi da tutti i dispositivi downstream all'hub IoT:
-
Nome:
allDownstreamToHub -
Valore:
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Questa route funziona perché, a differenza dei messaggi dei moduli IoT Edge, i messaggi dei dispositivi downstream non hanno un ID modulo associato. L'uso della clausola WHERE della route consente di filtrare tutti i messaggi con tale proprietà di sistema.
Per altre informazioni sul routing dei messaggi, vedere Distribuire moduli e stabilire route.
-
Nome:
Dopo aver creato il percorso o i percorsi, selezionare Rivedi e crea.
Nella pagina Rivedi e crea selezionare Crea.
Aprire porte nel dispositivo gateway
I dispositivi IoT Edge standard non necessitano di connettività in ingresso per funzionare, perché tutte le comunicazioni con l'hub IoT vengono eseguite tramite connessioni in uscita. I dispositivi gateway sono diversi perché devono ricevere messaggi dai dispositivi downstream. Se un firewall è tra i dispositivi downstream e il dispositivo gateway, la comunicazione deve essere possibile anche tramite il firewall.
Per il funzionamento di uno scenario gateway, almeno uno dei protocolli supportati dell'hub IoT Edge deve essere aperto per il traffico in ingresso dai dispositivi downstream. I protocolli supportati sono MQTT, AMQP, HTTPS, MQTT su WebSocket e AMQP su WebSocket.
| Porto | Protocollo |
|---|---|
| 8883 | MQTT |
| 5671 | AMQP |
| 443 | HTTPS MQTT+WS AMQP+WS |
Passaggi successivi
Dopo aver impostato un dispositivo IoT Edge che opera come gateway trasparente, è necessario configurare i dispositivi downstream per fidarsi del gateway e inviargli messaggi. Passare a Autenticare un dispositivo downstream nell'hub IoT di Azure per i passaggi successivi nella configurazione dello scenario del gateway trasparente.