Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
IoT Edge 1.5
Belangrijk
IoT Edge 1.5 LTS is de ondersteunde release. IoT Edge 1.4 LTS is het einde van de levensduur vanaf 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
Dit artikel bevat instructies voor het instellen van een vertrouwde verbinding tussen downstreamapparaten en transparante IoT Edge-gateways. In een transparant gatewayscenario verzenden een of meer apparaten berichten via één gatewayapparaat dat de verbinding met IoT Hub onderhoudt. In dit artikel betekenen de termen gateway en IoT Edge-gateway een IoT Edge-apparaat dat is geconfigureerd als een transparante gateway.
Notitie
Een downstreamapparaat verzendt gegevens rechtstreeks naar internet of naar gatewayapparaten (ioT Edge ingeschakeld of niet). Een onderliggend apparaat kan een downstreamapparaat of een gatewayapparaat in een geneste topologie zijn.
U stelt in drie stappen een transparante gatewayverbinding in. In dit artikel wordt de derde stap uitgelegd.
Configureer het gatewayapparaat als een server, zodat downstreamapparaten er veilig verbinding mee kunnen maken. Stel de gateway in om berichten van downstreamapparaten te ontvangen en door te sturen naar de juiste bestemming. Zie Een IoT Edge-apparaat configureren als een transparante gateway voor deze stappen.
Maak een apparaat-id voor het downstreamapparaat, zodat het kan worden geverifieerd met IoT Hub. Configureer het downstreamapparaat om berichten via het gatewayapparaat te verzenden. Zie Een downstreamapparaat verifiëren bij Azure IoT Hub voor deze stappen.
Verbind het downstreamapparaat met het gatewayapparaat en begin berichten te verzenden.
In dit artikel worden de onderdelen van de downstreamapparaatverbinding uitgelegd, zoals:
- Basisbeginselen van transportlaagbeveiliging (TLS) en certificaten
- TLS-bibliotheken die op verschillende besturingssystemen werken en certificaten op een andere manier verwerken
U doorloopt Azure IoT-voorbeelden in uw voorkeurstaal om uw apparaat te laten berichten verzenden naar de gateway.
Vereisten
Verkrijg het volgende om uw downstreamapparaat voor te bereiden:
Een downstreamapparaat.
Dit apparaat kan elke toepassing of elk platform zijn met een identiteit die is gemaakt in Azure IoT Hub. In veel gevallen maken toepassingen gebruik van de Azure IoT Device SDK. Een downstreamapparaat kan ook een toepassing zijn die wordt uitgevoerd op het IoT Edge-gatewayapparaat.
Verderop leest u in dit artikel hoe u een IoT-apparaat verbindt als een downstreamapparaat. Als u een IoT Edge-apparaat als downstreamapparaat wilt gebruiken, raadpleegt u Azure IoT Edge-apparaten met elkaar verbinden om een hiërarchie (geneste rand) te maken.
Een basis-CA-certificaatbestand.
Dit bestand wordt gebruikt om het Edge CA-certificaat te genereren in Een IoT Edge-apparaat configureren om te fungeren als een transparante gateway en is beschikbaar op uw downstreamapparaat.
Uw downstreamapparaat gebruikt dit certificaat om de identiteit van het gatewayapparaat te controleren. Dit vertrouwde certificaat beveiligt de TLS-verbindingen (Transport Layer Security) met het gatewayapparaat. Zie Het basis-CA-certificaat opgeven voor gebruiksgegevens.
Een gewijzigde verbindingsreeks die verwijst naar het gatewayapparaat.
Zie Een downstreamapparaat verifiëren bij Azure IoT Hub voor meer informatie over het wijzigen van uw verbindingsreeks.
Notitie
IoT-apparaten die zijn geregistreerd bij IoT Hub kunnen moduledubbels gebruiken om verschillende processen, hardware of functies op één apparaat te isoleren. IoT Edge-gateways ondersteunen downstreammoduleverbindingen met behulp van symmetrische sleutelverificatie, maar niet X.509-certificaatverificatie.
Basisbeginselen van TLS en certificaten begrijpen
Het veilig verbinden van downstreamapparaten met IoT Edge is vergelijkbaar met andere beveiligde client- en servercommunicatie via internet. Een client en een server communiceren veilig via internet via TLS (Transport Layer Security). TLS maakt gebruik van standaard PKI-constructies (Public Key Infrastructure) die certificaten worden genoemd. TLS is een gedetailleerde specificatie die betrekking heeft op veel onderwerpen met betrekking tot het beveiligen van twee eindpunten. In deze sectie vindt u een overzicht van de concepten die u nodig hebt om apparaten veilig te verbinden met een IoT Edge-gateway.
Wanneer een client verbinding maakt met een server, geeft de server een keten van certificaten weer die de servercertificaatketen worden genoemd. Een certificaatketen heeft meestal een ca-certificaat (root certificate authority), een of meer tussenliggende CA-certificaten en het certificaat van de server. De client vertrouwt de server door de volledige certificaatketen van de server cryptografisch te verifiëren. Dit proces wordt serverketenvalidatie genoemd. De client daagt ook de server uit om te bewijzen dat deze de persoonlijke sleutel voor het servercertificaat heeft, het zogenaamde bewijs van bezit. Samen worden validatie van de serverketen en het bewijs van eigendom serververificatie genoemd. Om een servercertificaatketen te valideren, heeft de client een kopie nodig van het basis-CA-certificaat dat wordt gebruikt om het certificaat van de server uit te geven. Wanneer u verbinding maakt met websites, worden browsers vooraf geconfigureerd met algemene CA-certificaten, zodat het clientproces naadloos verloopt.
Wanneer een apparaat verbinding maakt met Azure IoT Hub, is het apparaat de client en is de IoT Hub-cloudservice de server. De IoT Hub-cloudservice maakt gebruik van een basis-CA-certificaat met de naam Baltimore CyberTrust Root, dat openbaar beschikbaar is en veel wordt gebruikt. Omdat het Ca-certificaat van IoT Hub al op de meeste apparaten is geïnstalleerd, gebruiken veel TLS-implementaties (OpenSSL, Schannel, LibreSSL) dit automatisch tijdens de validatie van servercertificaten. Een apparaat dat verbinding maakt met IoT Hub kan echter problemen hebben bij het maken van verbinding met een IoT Edge-gateway.
Wanneer een apparaat verbinding maakt met een IoT Edge-gateway, is het downstreamapparaat de client en het gatewayapparaat de server. Met Azure IoT Edge kunt u waar nodig gatewaycertificaatketens bouwen. U kunt een openbaar CA-certificaat, zoals Baltimore, of een zelfondertekend (of intern) basis-CA-certificaat gebruiken. Openbare CA-certificaten hebben vaak kosten, dus ze worden meestal gebruikt in productiescenario's. Zelfondertekende CA-certificaten hebben de voorkeur voor ontwikkeling en testen. De democertificaten zijn zelfondertekende basis-CA-certificaten.
Wanneer u een zelfondertekend basis-CA-certificaat gebruikt voor een IoT Edge-gateway, moet u het installeren of opgeven voor alle downstreamapparaten die verbinding maken met de gateway.
Zie de details van het gebruik van IoT Edge-certificaten voor meer informatie over IoT Edge-certificaten en productie-implicaties.
Geef het basis-CA-certificaat op
Om de certificaten van het gatewayapparaat te controleren, heeft het downstreamapparaat een eigen kopie van het basis-CA-certificaat nodig. Als u de scripts in de Git-opslagplaats van IoT Edge gebruikt om testcertificaten te maken, wordt het basis-CA-certificaat azure-iot-test-only.root.ca.cert.pem genoemd.
Als u dit nog niet hebt gedaan, verplaatst u dit certificaatbestand naar een map op uw downstreamapparaat. Verplaats het bestand door het CA-certificaat in het certificaatarchief van het besturingssysteem te installeren of door te verwijzen naar het certificaat in toepassingen die gebruikmaken van de Azure IoT SDK's.
Gebruik een service zoals Azure Key Vault of een hulpprogramma zoals secure copy protocol om het certificaatbestand te verplaatsen.
Certificaten installeren in het besturingssysteem
Nadat u het basis-CA-certificaat naar het downstreamapparaat hebt gekopieerd, moet u ervoor zorgen dat toepassingen die verbinding maken met de gateway toegang hebben tot het certificaat.
Installeer het basis-CA-certificaat in het certificaatarchief van het besturingssysteem, zodat de meeste toepassingen het kunnen gebruiken. Sommige toepassingen, zoals Node.js, gebruiken het certificaatarchief van het besturingssysteem niet en gebruiken in plaats daarvan het interne certificaatarchief van de Node Runtime. Als u het certificaat niet op besturingssysteemniveau kunt installeren, gaat u naar de sectie Certificaten gebruiken met Azure IoT SDK's .
Installeer het basis-CA-certificaat op Ubuntu of Windows.
Gebruik de volgende opdrachten om een CA-certificaat op een Ubuntu-host te installeren. In dit voorbeeld wordt het certificaat azure-iot-test-only.root.ca.cert.pem uit de vereistenartikelen gebruikt en wordt ervan uitgegaan dat u het certificaat hebt gekopieerd naar een locatie op het downstream-apparaat.
sudo cp <file path>/azure-iot-test-only.root.ca.cert.pem /usr/local/share/ca-certificates/azure-iot-test-only.root.ca.cert.pem.crt
sudo update-ca-certificates
Wanneer u klaar bent, ziet u een update van certificaten in /etc/ssl/certs... 1 toegevoegd, 0 verwijderd; gereed bericht.
Certificaten gebruiken met Azure IoT SDK's
Azure IoT SDK's maken verbinding met een IoT Edge-apparaat met behulp van eenvoudige voorbeeldtoepassingen. Het doel van de voorbeelden is om de apparaatclient te koppelen en telemetrieberichten van de apparaten naar de gateway te verzenden, vervolgens de verbinding te beëindigen en af te sluiten.
Voordat u de voorbeelden op toepassingsniveau gebruikt, moet u de volgende items verkrijgen:
Uw IoT Hub-verbindingsreeks, van uw downstreamapparaat, gewijzigd zodat deze verwijst naar het gatewayapparaat.
Certificaten die nodig zijn om uw downstreamapparaat te verifiëren bij IoT Hub. Zie Een downstreamapparaat verifiëren bij Azure IoT Hub voor meer informatie.
Het volledige pad naar het basis-CA-certificaat dat u hebt gekopieerd en ergens op uw downstreamapparaat hebt opgeslagen.
Voorbeeld:
<file path>/azure-iot-test-only.root.ca.cert.pem.
Nu bent u klaar om certificaten te gebruiken met een voorbeeld in de taal van uw keuze:
Deze sectie bevat een voorbeeldtoepassing om een Azure IoT Node.js-apparaatclient te verbinden met een IoT Edge-gateway. Voor Node.js toepassingen moet u het basis-CA-certificaat installeren op toepassingsniveau, zoals hier wordt weergegeven. Node.js toepassingen het certificaatarchief van het systeem niet gebruiken.
- Haal het voorbeeld voor edge_downstream_device.js op uit de Azure IoT Device SDK voor Node.js opslagplaats met voorbeelden.
- Zorg ervoor dat u aan alle vereisten voldoet om het voorbeeld uit te voeren door het readme.md bestand te controleren.
- Werk in het edge_downstream_device.js-bestand de variabelen connectionString en edge_ca_cert_path bij.
- Raadpleeg de SDK-documentatie voor instructies over het uitvoeren van het voorbeeld op uw apparaat.
Om inzicht te hebben in het voorbeeld dat u uitvoert, is het volgende codefragment hoe de client-SDK het certificaatbestand leest en gebruikt om een beveiligde TLS-verbinding tot stand te brengen:
// Provide the Azure IoT device client via setOptions with the X509
// Edge root CA certificate that was used to setup the Edge runtime
var options = {
ca : fs.readFileSync(edge_ca_cert_path, 'utf-8'),
};
De gatewayverbinding testen
Voer deze voorbeeldopdracht uit op het downstreamapparaat om te testen of het verbinding kan maken met het gatewayapparaat:
openssl s_client -connect mygateway.contoso.com:8883 -CAfile <CERTDIR>/certs/azure-iot-test-only.root.ca.cert.pem -showcerts
Met deze opdracht wordt de verbinding gecontroleerd via MQTTS (poort 8883). Als u een ander protocol gebruikt, past u de opdracht voor AMQPS (5671) of HTTPS (443) aan.
De uitvoer van deze opdracht kan lang zijn en bevat informatie over alle certificaten in de keten. Als de verbinding is geslaagd, ziet u een lijn zoals Verification: OK of Verify return code: 0 (ok).
Problemen met de gatewayverbinding oplossen
Als uw downstreamapparaatverbinding met het gatewayapparaat instabiel is, kunt u deze vragen overwegen om het probleem op te lossen.
- Is de hostnaam van de gateway in de verbindingsreeks hetzelfde als de hostnaamwaarde in het configuratiebestand van IoT Edge op het gatewayapparaat?
- Kan de hostnaam van de gateway worden omgezet in een IP-adres? Herstel onregelmatige verbindingen met behulp van DNS of het toevoegen van een hostbestandsvermelding op het downstreamapparaat.
- Zijn communicatiepoorten geopend in uw firewall? Zorg ervoor dat de vereiste protocolpoorten (MQTTS:8883, AMQPS:5671, HTTPS:433) zijn geopend tussen het downstreamapparaat en het transparante IoT Edge-apparaat.
Volgende stappen
Meer informatie over hoe IoT Edge offlinemogelijkheden uitbreidt naar downstreamapparaten.