Een IoT Edge-apparaat in Linux maken en inrichten met X.509-certificaten
Van toepassing op: IoT Edge 1.5 IoT Edge 1.4
Belangrijk
IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
Dit artikel bevat end-to-end instructies voor het registreren en inrichten van een Linux IoT Edge-apparaat, waaronder het installeren van IoT Edge.
Elk apparaat dat verbinding maakt met een IoT-hub heeft een apparaat-id die wordt gebruikt om cloud-naar-apparaat- of apparaat-naar-cloud-communicatie bij te houden. U configureert een apparaat met de bijbehorende verbindingsgegevens die de hostnaam van de IoT-hub, de apparaat-id en de informatie die het apparaat gebruikt voor verificatie bij IoT Hub.
De stappen in dit artikel doorlopen een proces met de naam handmatig inrichten, waarbij u één apparaat verbindt met de IoT-hub. Voor handmatige inrichting hebt u twee opties voor het verifiëren van IoT Edge-apparaten:
Symmetrische sleutels: wanneer u een nieuwe apparaat-id in IoT Hub maakt, worden er twee sleutels gemaakt. U plaatst een van de sleutels op het apparaat en geeft de sleutel aan IoT Hub weer bij het verifiëren.
Deze verificatiemethode is sneller om aan de slag te gaan, maar niet zo veilig.
X.509 zelfondertekend: u maakt twee X.509-identiteitscertificaten en plaatst deze op het apparaat. Wanneer u een nieuwe apparaat-id in IoT Hub maakt, geeft u vingerafdruk van beide certificaten op. Wanneer het apparaat wordt geverifieerd bij IoT Hub, geeft het één certificaat weer en controleert IoT Hub of het certificaat overeenkomt met de vingerafdruk.
Deze verificatiemethode is veiliger en wordt aanbevolen voor productiescenario's.
In dit artikel wordt beschreven hoe u X.509-certificaten gebruikt als verificatiemethode. Als u symmetrische sleutels wilt gebruiken, raadpleegt u Een IoT Edge-apparaat maken en inrichten in Linux met behulp van symmetrische sleutels.
Notitie
Als u veel apparaten moet instellen en niet elk apparaat handmatig wilt inrichten, gebruikt u een van de volgende artikelen om te leren hoe IoT Edge werkt met de IoT Hub-apparaatinrichtingsservice:
Vereisten
In dit artikel wordt beschreven hoe u uw IoT Edge-apparaat registreert en IoT Edge erop installeert. Deze taken hebben verschillende vereisten en hulpprogramma's die worden gebruikt om ze te bereiken. Zorg ervoor dat aan alle vereisten wordt voldaan voordat u doorgaat.
Hulpprogramma’s voor apparaatbeheer
U kunt Azure Portal, Visual Studio Code of Azure CLI gebruiken om uw apparaat te registreren. Elk hulpprogramma heeft zijn eigen vereisten of moet mogelijk worden geïnstalleerd:
Een gratis of standaard IoT-hub in uw Azure-abonnement.
Vereisten voor apparaten
Een X64-, ARM32- of ARM64 Linux-apparaat.
Microsoft publiceert installatiepakketten voor verschillende besturingssystemen.
Zie ondersteunde Systemen van Azure IoT Edge voor de meest recente informatie over welke besturingssystemen momenteel worden ondersteund voor productiescenario's.
Apparaat-id-certificaten genereren
Voor handmatig inrichten met X.509-certificaten is IoT Edge versie 1.0.10 of hoger vereist.
Wanneer u een IoT Edge-apparaat inricht met X.509-certificaten, gebruikt u een apparaatidentiteitscertificaat. Dit certificaat wordt alleen gebruikt voor het inrichten van een IoT Edge-apparaat en het verifiëren van het apparaat met Azure IoT Hub. Het is een bladcertificaat dat geen andere certificaten ondertekent. Het certificaat voor apparaat-id's staat los van de certificaten van de certificeringsinstantie (CA) die het IoT Edge-apparaat presenteert aan modules of downstreamapparaten voor verificatie.
Voor X.509-certificaatverificatie worden de verificatiegegevens van elk apparaat opgegeven in de vorm van vingerafdrukken die afkomstig zijn van uw apparaat-id-certificaten. Deze vingerafdrukken worden aan IoT Hub gegeven op het moment van apparaatregistratie, zodat de service het apparaat kan herkennen wanneer het verbinding maakt.
Zie Begrijpen hoe Azure IoT Edge certificaten gebruikt voor certificaten voor meer informatie over hoe de CA-certificaten worden gebruikt op IoT Edge-apparaten.
U hebt de volgende bestanden nodig voor handmatige inrichting met X.509:
Twee apparaatidentiteitscertificaten met hun overeenkomende persoonlijke-sleutelcertificaten in .cer- of PEM-indelingen. U hebt twee apparaat-id-certificaten nodig voor certificaatrotatie. Een best practice is om twee verschillende apparaatidentiteitscertificaten met verschillende vervaldatums voor te bereiden. Als het ene certificaat verloopt, is het andere nog geldig en krijgt u tijd om het verlopen certificaat te draaien.
Er wordt één set certificaat- en sleutelbestanden geleverd aan de IoT Edge-runtime. Wanneer u apparaat-id-certificaten maakt, stelt u de algemene naam van het certificaat (CN) in met de apparaat-id die het apparaat in uw IoT-hub moet hebben.
Vingerafdrukken die afkomstig zijn van beide apparaat-id-certificaten. Voor IoT Hub zijn twee vingerafdrukken vereist bij het registreren van een IoT Edge-apparaat. U kunt slechts één certificaat gebruiken voor registratie. Als u één certificaat wilt gebruiken, stelt u dezelfde vingerafdruk van het certificaat in voor zowel de primaire als de secundaire vingerafdruk bij het registreren van het apparaat.
Vingerafdrukwaarden zijn 40-hex tekens voor SHA-1 hashes of 64-hex tekens voor SHA-256 hashes. Beide vingerafdrukken worden op het moment van apparaatregistratie aan IoT Hub verstrekt.
Een manier om de vingerafdruk op te halen uit een certificaat is met de volgende openssl-opdracht:
openssl x509 -in <certificate filename>.pem -text -fingerprint
De vingerafdruk wordt opgenomen in de uitvoer van deze opdracht. Voorbeeld:
SHA1 Fingerprint=D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12
Als u geen certificaten beschikbaar hebt, kunt u democertificaten maken om ioT Edge-apparaatfuncties te testen. Volg de instructies in dat artikel voor het instellen van scripts voor het maken van certificaten, het maken van een basis-CA-certificaat en het maken van een IoT Edge-apparaat-id-certificaat. Voor het testen kunt u één apparaat-id-certificaat maken en dezelfde vingerafdruk gebruiken voor zowel primaire als secundaire vingerafdrukwaarden bij het registreren van het apparaat in IoT Hub.
Uw apparaat registreren
U kunt Azure Portal, Visual Studio Code of Azure CLI gebruiken om uw apparaat te registreren, afhankelijk van uw voorkeur.
In uw IoT-hub in Azure Portal worden IoT Edge-apparaten afzonderlijk gemaakt en beheerd van IoT-apparaten waarvoor geen edge is ingeschakeld.
Meld u aan bij de Azure-portal en ga naar uw IoT Hub.
Selecteer Apparaten in het menu in het linkerdeelvenster en selecteer Vervolgens Apparaat toevoegen.
Geef op de pagina Een apparaat maken de volgende informatie op:
- Maak een beschrijvende apparaat-id. Noteer deze apparaat-id, omdat u deze later gebruikt.
- Schakel het selectievakje IoT Edge-apparaat in.
- Selecteer X.509 Zelfondertekend als verificatietype.
- Geef de vingerafdruk van het primaire en secundaire identiteitscertificaat op. Vingerafdrukwaarden zijn 40-hex tekens voor SHA-1 hashes of 64-hex tekens voor SHA-256 hashes. Azure Portal ondersteunt alleen hexadecimale waarden. Verwijder kolomscheidingstekens en spaties uit de vingerafdrukwaarden voordat u deze invoert in de portal. Wordt bijvoorbeeld
D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12
ingevoerd alsD268D9049F1A4D6AFD8477687BC633C032375112
.
Tip
Als u test en één certificaat wilt gebruiken, kunt u hetzelfde certificaat gebruiken voor zowel de primaire als de secundaire vingerafdruk.
Selecteer Opslaan.
Nu u een apparaat hebt geregistreerd in IoT Hub, haalt u de informatie op die u gebruikt om de installatie en inrichting van de IoT Edge-runtime te voltooien.
Geregistreerde apparaten weergeven en inrichtingsgegevens ophalen
Apparaten die X.509-certificaatverificatie gebruiken, hebben hun IoT Hub-naam, hun apparaatnaam en hun certificaatbestanden nodig om de installatie en inrichting van de IoT Edge-runtime te voltooien.
De edge-apparaten die verbinding maken met uw IoT-hub, worden weergegeven op de pagina Apparaten . U kunt de lijst filteren op ioT Edge-apparaten van het apparaattype.
IoT Edge installeren
In deze sectie bereidt u uw virtuele Linux-machine of fysiek apparaat voor op IoT Edge. Vervolgens installeert u IoT Edge.
Voer de volgende opdrachten uit om de pakketopslagplaats toe te voegen en voeg vervolgens de ondertekeningssleutel van het Microsoft-pakket toe aan uw lijst met vertrouwde sleutels.
Belangrijk
Op 30 juni 2022 werd Raspberry Pi OS Stretch buiten gebruik gesteld van de ondersteuningslijst van het laag 1-besturingssysteem. Om potentiële beveiligingsproblemen te voorkomen, werkt u uw hostbesturingssysteem bij naar Bullseye.
Voor platformbesturingssystemen die in laag 2 worden ondersteund, worden installatiepakketten beschikbaar gesteld in Azure IoT Edge-releases. Zie de installatiestappen in offline- of specifieke versie-installatie.
Installatie kan worden uitgevoerd met een paar opdrachten. Open een terminal en voer de volgende opdrachten uit:
24.04:
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
22.04:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Zie ondersteunde platformen van Azure IoT Edge voor meer informatie over besturingssysteemversies.
Notitie
Azure IoT Edge-softwarepakketten zijn onderworpen aan de licentievoorwaarden die zich in elk pakket (usr/share/doc/{package-name}
of de LICENSE
map) bevinden. Lees de licentievoorwaarden voordat u een pakket gebruikt. Uw installatie en het gebruik van een pakket vormen uw aanvaarding van deze voorwaarden. Als u niet akkoord gaat met de licentievoorwaarden, gebruikt u dat pakket niet.
Een containerengine installeren
Azure IoT Edge is afhankelijk van een OCI-compatibele containerruntime. Voor productiescenario's raden we u aan de Moby-engine te gebruiken. De Moby-engine is de containerengine die officieel wordt ondersteund met IoT Edge. Docker CE/EE-containerinstallatiekopieën zijn compatibel met de Moby-runtime. Als u Ubuntu Core-snaps gebruikt, wordt de Docker-module onderhouden door Canonical en ondersteund voor productiescenario's.
Installeer de Moby-engine.
sudo apt-get update; \
sudo apt-get install moby-engine
De containerengine stelt standaard geen limieten voor de grootte van containerlogboeken in. Na verloop van tijd kan dit ertoe leiden dat het apparaat vol raakt met logboeken en onvoldoende schijfruimte heeft. U kunt uw logboek echter zo configureren dat dit lokaal wordt weergegeven, hoewel dit optioneel is. Zie controlelijst voor productie-implementatie voor meer informatie over logboekregistratieconfiguratie.
In de volgende stappen ziet u hoe u uw container configureert voor het gebruik van local
het logboekregistratiestuurprogramma als het mechanisme voor logboekregistratie.
Het configuratiebestand van de bestaande Docker-daemon maken of bewerken
sudo nano /etc/docker/daemon.json
Stel het standaardstuurprogramma voor logboekregistratie in op het
local
logboekregistratiestuurprogramma, zoals wordt weergegeven in het voorbeeld.{ "log-driver": "local" }
Start de containerengine opnieuw om de wijzigingen van kracht te laten worden.
sudo systemctl restart docker
De IoT Edge-runtime installeren
De IoT Edge-service biedt en onderhoudt beveiligingsstandaarden op het IoT Edge-apparaat. De service wordt gestart bij elke opstartbewerking en bootstrapt het apparaat door de rest van de IoT Edge-runtime te starten.
Notitie
Vanaf versie 1.2 verwerkt de IoT-identiteitsservice identiteitsinrichting en -beheer voor IoT Edge en voor andere apparaatonderdelen die moeten communiceren met IoT Hub.
De stappen in deze sectie vertegenwoordigen het gebruikelijke proces voor het installeren van de nieuwste IoT Edge-versie op een apparaat met internetverbinding. Als u een specifieke versie, zoals een voorlopige versie, moet installeren of offline moet installeren, volgt u de stappen voor offline - of specifieke versie-installatie verderop in dit artikel.
Tip
Als u al een IoT Edge-apparaat met een oudere versie hebt en een upgrade wilt uitvoeren naar de nieuwste versie, gebruikt u de stappen in De IoT Edge-beveiligingsdaemon en -runtime bijwerken. Latere versies verschillen voldoende van eerdere versies van IoT Edge die specifieke stappen nodig zijn om een upgrade uit te voeren.
Installeer de nieuwste versie van IoT Edge en het IoT Identity Service-pakket (als u nog niet up-to-date bent):
22.04:
sudo apt-get update; \ sudo apt-get install aziot-edge
20.04:
sudo apt-get update; \ sudo apt-get install aziot-edge defender-iot-micro-agent-edge
Het optionele defender-iot-micro-agent-edge
pakket bevat de microagent voor Microsoft Defender for IoT-beveiliging die inzicht biedt in beveiligingspostuurbeheer, beveiligingsproblemen, detectie van bedreigingen, vlootbeheer en meer om u te helpen uw IoT Edge-apparaten te beveiligen. Het is raadzaam om de microagent te installeren met de Edge-agent om beveiligingsbewaking en beveiliging van uw Edge-apparaten mogelijk te maken. Zie Wat is Microsoft Defender voor IoT voor apparaatbouwers voor meer informatie over Microsoft Defender voor IoT.
Het apparaat inrichten met de cloudidentiteit
Nu de containerengine en de IoT Edge-runtime op uw apparaat zijn geïnstalleerd, kunt u het apparaat instellen met de cloudidentiteits- en verificatiegegevens.
Maak het configuratiebestand voor uw apparaat op basis van een sjabloonbestand dat is opgegeven als onderdeel van de IoT Edge-installatie.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Open het configuratiebestand op het IoT Edge-apparaat.
sudo nano /etc/aziot/config.toml
Zoek de sectie Inrichten van het bestand en verwijder opmerkingen bij de regels voor handmatige inrichting met X.509-identiteitscertificaat. Zorg ervoor dat eventuele andere inrichtingssecties worden uitgecommentarieerd.
# Manual provisioning with x.509 certificates [provisioning] source = "manual" iothub_hostname = "REQUIRED_IOTHUB_HOSTNAME" device_id = "REQUIRED_DEVICE_ID_PROVISIONED_IN_IOTHUB" [provisioning.authentication] method = "x509" identity_cert = "REQUIRED_URI_OR_POINTER_TO_DEVICE_IDENTITY_CERTIFICATE" identity_pk = "REQUIRED_URI_TO_DEVICE_IDENTITY_PRIVATE_KEY"
Werk de volgende velden bij:
- iothub_hostname: Hostnaam van de IoT Hub waar het apparaat verbinding mee maakt. Bijvoorbeeld:
{IoT hub name}.azure-devices.net
. - device_id: de id die u hebt opgegeven toen u het apparaat registreerde.
- identity_cert: URI naar een identiteitscertificaat op het apparaat, bijvoorbeeld:
file:///path/identity_certificate.pem
. Of geef het certificaat dynamisch uit met BEHULP van EST of een lokale certificeringsinstantie. - identity_pk: URI naar het persoonlijke-sleutelbestand voor het opgegeven identiteitscertificaat, bijvoorbeeld:
file:///path/identity_key.pem
. Of geef een PKCS#11 URI op en geef vervolgens uw configuratiegegevens op in de
De sectie PKCS#11 verderop in het configuratiebestand.
Zie IoT Edge-certificaten beheren voor meer informatie over certificaten.
Sla het bestand op en sluit het bestand.
CTRL + X
, , Y
Enter
Pas uw wijzigingen toe nadat u de inrichtingsgegevens in het configuratiebestand hebt ingevoerd:
sudo iotedge config apply
Modules implementeren
Als u uw IoT Edge-modules wilt implementeren, gaat u naar uw IoT-hub in Azure Portal en gaat u vervolgens naar:
Selecteer Apparaten in het menu IoT Hub.
Selecteer uw apparaat om de bijbehorende pagina te openen.
Selecteer het tabblad Modules instellen.
Omdat we de standaardmodules van IoT Edge (edgeAgent en edgeHub) willen implementeren, hoeven we geen modules aan dit deelvenster toe te voegen. Selecteer Dus selecteer Beoordelen en maken onderaan.
U ziet de JSON-bevestiging van uw modules. Selecteer Maken om de modules te implementeren.<
Zie Een module implementeren voor meer informatie.
Geslaagde configuratie controleren
Controleer of de runtime goed is geïnstalleerd en geconfigureerd op uw IoT Edge-apparaat.
Tip
U hebt verhoogde bevoegdheden nodig om iotedge
-opdrachten uit te voeren. Nadat u zich de eerste keer na de installatie van de IoT Edge-runtime hebt afgemeld en opnieuw hebt aangemeld, worden uw machtigingen automatisch bijgewerkt. Gebruik tot die tijd sudo
voorafgaand aan de opdrachten.
Controleer of de IoT Edge-systeemservice wordt uitgevoerd.
sudo iotedge system status
Een geslaagd statusantwoord is Ok
.
Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.
sudo iotedge system logs
Gebruik het hulpprogramma om de check
configuratie- en verbindingsstatus van het apparaat te controleren.
sudo iotedge check
U kunt een reeks antwoorden verwachten die OK (groen), Waarschuwing (geel) of Fout (rood) kunnen bevatten. Zie Oplossingen voor veelvoorkomende problemen voor Azure IoT Edge voor het oplossen van veelvoorkomende fouten.
Tip
sudo
Gebruik altijd om het controleprogramma uit te voeren, zelfs nadat uw machtigingen zijn bijgewerkt. Het hulpprogramma heeft verhoogde bevoegdheden nodig om toegang te krijgen tot het configuratiebestand om de configuratiestatus te verifiëren.
Notitie
Op een nieuw ingericht apparaat ziet u mogelijk een fout met betrekking tot IoT Edge Hub:
× productiegereedheid: de opslagmap van Edge Hub blijft behouden in het hostbestandssysteem - Fout
Kan de huidige status van de EdgeHub-container niet controleren
Deze fout wordt verwacht op een nieuw ingericht apparaat omdat de IoT Edge Hub-module niet wordt uitgevoerd. Als u de fout wilt oplossen, stelt u in IoT Hub de modules voor het apparaat in en maakt u een implementatie. Als u een implementatie voor het apparaat maakt, worden de modules op het apparaat gestart, inclusief de IoT Edge Hub-module.
Bekijk alle modules die op uw IoT Edge-apparaat worden uitgevoerd. Wanneer de service voor het eerst wordt gestart, ziet u alleen dat de edgeAgent-module wordt uitgevoerd. De edgeAgent-module wordt standaard uitgevoerd en helpt bij het installeren en starten van aanvullende modules die u op uw apparaat implementeert.
sudo iotedge list
Wanneer u een nieuw IoT Edge-apparaat maakt, wordt de statuscode 417 -- The device's deployment configuration is not set
weergegeven in Azure Portal. Deze status is normaal en betekent dat het apparaat gereed is voor het ontvangen van een module-implementatie.
Offline of specifieke versie-installatie (optioneel)
De stappen in deze sectie zijn bedoeld voor scenario's die niet worden gedekt door de standaardinstallatiestappen. Dit kan omvatten:
- IoT Edge installeren terwijl u offline bent
- Een versie van een releasekandidaat installeren
Gebruik de stappen in deze sectie als u een specifieke versie van de Azure IoT Edge-runtime wilt installeren die niet beschikbaar is via pakketbeheer. De Microsoft-pakketlijst bevat alleen een beperkte set recente versies en de bijbehorende subversies. Deze stappen zijn dus bedoeld voor iedereen die een oudere versie of een kandidaatversie van de release wil installeren.
Als u Ubuntu-snaps gebruikt, kunt u een module downloaden en offline installeren. Zie Snaps downloaden en offline installeren voor meer informatie.
Met behulp van curl-opdrachten kunt u de onderdeelbestanden rechtstreeks vanuit de GitHub-opslagplaats van IoT Edge targeten.
Navigeer naar de Azure IoT Edge-releases en zoek de releaseversie waarop u zich wilt richten.
Vouw de sectie Assets voor die versie uit.
Elke release moet nieuwe bestanden hebben voor IoT Edge en de identiteitsservice. Als u IoT Edge gaat installeren op een offlineapparaat, downloadt u deze bestanden van tevoren. Gebruik anders de volgende opdrachten om deze onderdelen bij te werken.
Zoek het aziot-identity-servicebestand dat overeenkomt met de architectuur van uw IoT Edge-apparaat. Klik met de rechtermuisknop op de bestandskoppeling en kopieer het koppelingsadres.
Gebruik de gekopieerde koppeling in de volgende opdracht om die versie van de identiteitsservice te installeren:
curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
Zoek het aziot-edge-bestand dat overeenkomt met de architectuur van uw IoT Edge-apparaat. Klik met de rechtermuisknop op de bestandskoppeling en kopieer het koppelingsadres.
Gebruik de gekopieerde koppeling in de volgende opdracht om die versie van IoT Edge te installeren.
curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
IoT Edge verwijderen
Als u de IoT Edge-installatie van uw apparaat wilt verwijderen, gebruikt u de volgende opdrachten.
De IoT Edge-runtime verwijderen.
sudo apt-get autoremove --purge aziot-edge
Laat de --purge
vlag ongewijzigd als u IoT Edge opnieuw wilt installeren en in de toekomst dezelfde configuratiegegevens wilt gebruiken. Met de --purge
vlaggen worden alle bestanden verwijderd die zijn gekoppeld aan IoT Edge, inclusief uw configuratiebestanden.
Wanneer de IoT Edge-runtime wordt verwijderd, worden alle containers die worden gemaakt, gestopt, maar nog steeds aanwezig op uw apparaat. Bekijk alle containers om te zien welke containers behouden blijven.
sudo docker ps -a
Verwijder de containers van uw apparaat, inclusief de twee runtimecontainers.
sudo docker rm -f <container name>
Verwijder ten slotte de containerruntime van uw apparaat.
sudo apt-get autoremove --purge moby-engine