Vytváření ukázkových certifikátů pro účely testování funkcí zařízení IoT Edge

Platí pro:Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5 Značka zaškrtnutí IoT Edge 1.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Zařízení IoT Edge vyžadují certifikáty pro zabezpečenou komunikaci mezi modulem runtime, moduly a všemi podřízenými zařízeními. Pokud nemáte certifikační autoritu k vytvoření požadovaných certifikátů, můžete pomocí ukázkových certifikátů vyzkoušet funkce IoT Edge ve vašem testovacím prostředí. Tento článek popisuje funkce skriptů generování certifikátů, které IoT Edge poskytuje k testování.

Upozorňující

Platnost těchto certifikátů vyprší za 30 dnů a neměla by se používat v žádném produkčním scénáři.

Certifikáty můžete vytvořit na libovolném počítači a pak je zkopírovat do zařízení IoT Edge nebo vygenerovat certifikáty přímo na zařízení IoT Edge.

Požadavky

Vývojový počítač s nainstalovaným Gitem

Stažení skriptů testovacího certifikátu a nastavení pracovního adresáře

Úložiště IoT Edge na GitHubu obsahuje skripty pro generování certifikátů, které můžete použít k vytváření ukázkových certifikátů. Tato část obsahuje pokyny pro přípravu skriptů, které se mají spustit na počítači, a to buď ve Windows, nebo Linuxu.

Pokud chcete vytvořit ukázkové certifikáty na zařízení s Windows, musíte nainstalovat OpenSSL a pak naklonovat skripty generování a nastavit je tak, aby běžely místně v PowerShellu.

Nainstalujte OpenSSL

Nainstalujte OpenSSL pro Windows na počítač, který používáte k vygenerování certifikátů. Pokud už máte na zařízení s Windows nainstalovaný OpenSSL, ujistěte se, že openssl.exe je k dispozici v proměnné prostředí PATH.

Existuje několik způsobů, jak nainstalovat OpenSSL, včetně následujících možností:

  • Jednodušší: Stáhněte a nainstalujte všechny binární soubory OpenSSL třetích stran, například z OpenSSL na SourceForge. Přidejte úplnou cestu k openssl.exe do proměnné prostředí PATH.

  • Doporučeno: Stáhněte si zdrojový kód OpenSSL a sestavte binární soubory na svém počítači sami nebo přes vcpkg. Následující pokyny používají vcpkg ke stažení zdrojového kódu, kompilace a instalace OpenSSL na počítači s Windows pomocí jednoduchých kroků.

    1. Přejděte do adresáře, do kterého chcete nainstalovat vcpkg. Podle pokynů stáhněte a nainstalujte vcpkg.

    2. Po instalaci vcpkg spusťte z příkazového řádku PowerShellu následující příkaz a nainstalujte balíček OpenSSL pro Windows x64. Dokončení instalace obvykle trvá přibližně 5 minut.

      .\vcpkg install openssl:x64-windows
      
    3. Přidejte <vcpkg path>\installed\x64-windows\tools\openssl do proměnné prostředí PATH, aby byl soubor openssl.exe k dispozici pro vyvolání.

Příprava skriptů v PowerShellu

Úložiště Git Azure IoT Edge obsahuje skripty, které můžete použít k vygenerování testovacích certifikátů. V této části naklonujete úložiště IoT Edge a spustíte skripty.

  1. Otevřete okno PowerShellu v režimu správce.

  2. Naklonujte úložiště Git IoT Edge, které obsahuje skripty pro generování ukázkových certifikátů. git clone Použijte příkaz nebo stáhněte soubor ZIP.

    git clone https://github.com/Azure/iotedge.git
    
  3. Vytvořte adresář, ve kterém chcete pracovat, a zkopírujte tam skripty certifikátu. V tomto adresáři se vytvoří všechny soubory certifikátů a klíčů.

    mkdir wrkdir
    cd .\wrkdir\
    cp ..\iotedge\tools\CACertificates\*.cnf .
    cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    Pokud jste úložiště stáhli jako zip, název složky je iotedge-master a zbytek cesty je stejný.

  4. Povolte PowerShell ke spuštění skriptů.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Přeneste funkce používané skripty do globálního oboru názvů PowerShellu.

    . .\ca-certs.ps1
    

    V okně PowerShellu se zobrazí upozornění, že certifikáty vygenerované tímto skriptem jsou určené jenom pro účely testování a neměly by se používat v produkčních scénářích.

  6. Ověřte, že je openSSL správně nainstalovaný, a ujistěte se, že nedojde ke kolizi názvů s existujícími certifikáty. Pokud dojde k problémům, měl by výstup skriptu popsat, jak je opravit ve vašem systému.

    Test-CACertsPrerequisites
    

Vytvoření kořenového certifikátu certifikační autority

Spuštěním tohoto skriptu vygenerujte kořenovou certifikační autoritu, která se vyžaduje pro každý krok v tomto článku.

Kořenový certifikát certifikační autority slouží k vytvoření všech ostatních ukázkových certifikátů pro testování scénáře IoT Edge. Stejný kořenový certifikát certifikační autority můžete dál používat k vytvoření ukázkových certifikátů pro více zařízení IoT Edge nebo podřízených zařízení.

Pokud už máte ve své pracovní složce jeden kořenový certifikát certifikační autority, nevytvořte nový certifikát. Nový kořenový certifikát certifikační autority přepíše starý certifikát a všechny podřízené certifikáty vytvořené ze starého certifikátu přestanou fungovat. Pokud chcete mít více kořenových certifikátů certifikační autority, nezapomeňte je spravovat v samostatných složkách.

  1. Přejděte do pracovního adresáře wrkdir , do kterého jste umístili skripty generování certifikátů.

  2. Vytvořte kořenový certifikát certifikační autority a podepište ho jeden zprostředkující certifikát. Všechny certifikáty jsou umístěné ve vašem pracovním adresáři.

    New-CACertsCertChain rsa
    

    Tento příkaz skriptu vytvoří několik souborů certifikátu a klíčů, ale když články požádají o certifikát kořenové certifikační autority, použijte následující soubor:

    certs\azure-iot-test-only.root.ca.cert.pem

Tento certifikát se vyžaduje před vytvořením dalších certifikátů pro zařízení IoT Edge a podřízených zařízení, jak je popsáno v dalších částech.

Vytvoření certifikátu identity pro zařízení IoT Edge

Certifikáty identity zařízení IoT Edge se používají ke zřízení zařízení IoT Edge, pokud se rozhodnete použít ověřování certifikátů X.509. Pokud k ověřování ve službě IoT Hub nebo DPS používáte symetrický klíč , tyto certifikáty nejsou potřeba a můžete tuto část přeskočit.

Tyto certifikáty fungují bez ohledu na to, jestli používáte ruční zřizování nebo automatické zřizování prostřednictvím služby Azure IoT Hub Device Provisioning Service (DPS).

Certifikáty identit zařízení se nacházejí v části Zřizování konfiguračního souboru na zařízení IoT Edge.

  1. Přejděte do pracovního adresáře wrkdir , který obsahuje skripty pro generování certifikátů a kořenový certifikát certifikační autority.

  2. Pomocí následujícího příkazu vytvořte certifikát identity zařízení IoT Edge a privátní klíč:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    Název, který předáte tomuto příkazu, je ID zařízení pro zařízení IoT Edge ve službě IoT Hub.

  3. Nový příkaz identity zařízení vytvoří několik souborů certifikátu a klíčů:

    Typ Soubor Popis
    Certifikát identity zařízení certs\iot-edge-device-identity-<device-id>.cert.pem Podepsaný zprostředkujícím certifikátem vygenerovaným dříve. Obsahuje jenom certifikát identity. Zadejte v konfiguračním souboru pro jednotlivou registraci DPS nebo zřizování ioT Hubu.
    Úplný řetězový certifikát certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem Obsahuje úplný řetěz certifikátů včetně zprostředkujícího certifikátu. Zadejte konfigurační soubor pro IoT Edge, který se má prezentovat službě DPS pro zřizování skupinových registrací.
    Privátní klíč private\iot-edge-device-identity-<device-id>.key.pem Privátní klíč přidružený k certifikátu identity zařízení. Pokud používáte nějaký druh ověřování certifikátu (kryptografický otisk nebo CA) pro DPS nebo IoT Hub, je třeba zadat v konfiguračním souboru.

Vytvoření certifikátů hraniční certifikační autority

Tyto certifikáty jsou vyžadovány pro scénáře brány, protože certifikát hraniční certifikační autority je způsob, jakým zařízení IoT Edge ověřuje svou identitu na podřízená zařízení. Tuto část můžete přeskočit, pokud nepřipojíte žádná podřízená zařízení ke službě IoT Edge.

Certifikát hraniční certifikační autority také zodpovídá za vytváření certifikátů pro moduly spuštěné v zařízení, ale modul runtime IoT Edge může vytvořit dočasné certifikáty, pokud není nakonfigurovaná hraniční certifikační autorita. Certifikáty certifikační autority Edge se nacházejí v části config.toml Certifikační autorita Edge v souboru na zařízení IoT Edge. Další informace najdete v tématu Vysvětlení toho, jak Azure IoT Edge používá certifikáty.

  1. Přejděte do pracovního adresáře wrkdir , který obsahuje skripty pro generování certifikátů a kořenový certifikát certifikační autority.

  2. Pomocí následujícího příkazu vytvořte certifikát certifikační autority IoT Edge a privátní klíč. Zadejte název certifikátu certifikační autority. Název předaný příkazu New-CACertsEdgeDevice by neměl být stejný jako parametr hostname v konfiguračním souboru nebo ID zařízení ve službě IoT Hub.

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Tento příkaz vytvoří několik souborů certifikátu a klíčů. Následující pár certifikátů a klíčů je potřeba zkopírovat do zařízení IoT Edge a odkazovat na ho v konfiguračním souboru:

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

Vytvoření certifikátů podřízených zařízení

Tyto certifikáty se vyžadují pro nastavení podřízeného zařízení IoT pro scénář brány a chtějí používat ověřování X.509 se službou IoT Hub nebo DPS. Pokud chcete použít ověřování symetrickým klíčem, nemusíte vytvářet certifikáty pro podřízené zařízení a můžete tuto část přeskočit.

Zařízení IoT můžete ověřit dvěma způsoby pomocí certifikátů X.509: certifikáty podepsané svým držitelem nebo certifikáty podepsané certifikační autoritou (CA).

  • Pro ověřování podepsaným svým držitelem X.509, někdy označované jako ověřování kryptografickým otiskem , musíte vytvořit nové certifikáty pro umístění na zařízení IoT. Tyto certifikáty mají kryptografický otisk, který sdílíte se službou IoT Hub pro ověřování.
  • Pro ověřování podepsané certifikační autoritou (CA) X.509 potřebujete certifikát kořenové certifikační autority zaregistrovaný ve službě IoT Hub nebo DPS, který používáte k podepisování certifikátů pro vaše zařízení IoT. Jakékoli zařízení, které používá certifikát vydaný kořenovým certifikátem certifikační autority nebo jakýkoli zprostředkující certifikát, se může ověřit, pokud zařízení prezentuje celý řetěz.

Skripty pro generování certifikátů vám můžou pomoct vytvořit ukázkové certifikáty k otestování některého z těchto scénářů ověřování.

Certifikáty podepsané svým držitelem

Při ověřování zařízení IoT pomocí certifikátů podepsaných svým držitelem je potřeba vytvořit certifikáty zařízení na základě kořenového certifikátu certifikační autority pro vaše řešení. Potom z certifikátů načtete šestnáctkový kryptografický otisk, který se poskytne službě IoT Hub. Vaše zařízení IoT také potřebuje kopii svých certifikátů zařízení, aby bylo možné ho ověřit ve službě IoT Hub.

  1. Přejděte do pracovního adresáře wrkdir , který obsahuje skripty pro generování certifikátů a kořenový certifikát certifikační autority.

  2. Vytvořte dva certifikáty (primární a sekundární) pro podřízené zařízení. Snadno použitelné zásady vytváření názvů je vytvoření certifikátů s názvem zařízení IoT a následným primárním nebo sekundárním popiskem. Příklad:

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

    Tento příkaz skriptu vytvoří několik souborů certifikátu a klíčů. Následující páry certifikátů a klíčů je potřeba zkopírovat do podřízeného zařízení IoT a odkazovat na je v aplikacích, které se připojují ke službě IoT Hub:

    • certs\iot-device-<device ID>-primary-full-chain.cert.pem
    • certs\iot-device-<device ID>-secondary-full-chain.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pem
    • certs\iot-device-<device ID>-secondary.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pfx
    • certs\iot-device-<device ID>-secondary.cert.pfx
    • private\iot-device-<device ID>-primary.key.pem
    • private\iot-device-<device ID>-secondary.key.pem
  3. Načtěte kryptografický otisk SHA1 (označovaný jako kryptografický otisk v kontextech služby IoT Hub) z každého certifikátu. Kryptografický otisk je řetězec šestnáctkového znaku 40. Pomocí následujícího příkazu openssl zobrazte certifikát a vyhledejte kryptografický otisk:

    Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).Thumbprint
    

    Spusťte tento příkaz dvakrát, jednou pro primární certifikát a jednou pro sekundární certifikát. Kryptografické otisky obou certifikátů zadáte při registraci nového zařízení IoT pomocí certifikátů X.509 podepsaných svým držitelem.

Certifikáty podepsané certifikační autoritou

Když ověřujete zařízení IoT pomocí certifikátů podepsaných certifikační autoritou, musíte nahrát kořenový certifikát certifikační autority pro vaše řešení do IoT Hubu. Pomocí stejného kořenového certifikátu certifikační autority vytvořte certifikáty zařízení, které se umístí na zařízení IoT, aby se mohl ověřit pomocí služby IoT Hub.

Certifikáty v této části jsou určené pro kroky v sérii kurzů certifikátů IoT Hub X.509. Úvod do této série najdete v tématu Principy kryptografie veřejného klíče a infrastruktury veřejného klíče X.509.

  1. Nahrajte soubor certifikátu kořenové certifikační autority z pracovního adresáře certs\azure-iot-test-only.root.ca.cert.pemdo centra IoT.

  2. Pokud není vybrané automatické ověření, použijte kód uvedený na webu Azure Portal a ověřte, že vlastníte certifikát kořenové certifikační autority.

    New-CACertsVerificationCert "<verification code>"
    
  3. Vytvořte řetěz certifikátů pro podřízené zařízení. Použijte stejné ID zařízení, ve které je zařízení zaregistrované ve službě IoT Hub.

    New-CACertsDevice "<device id>"
    

    Tento příkaz skriptu vytvoří několik souborů certifikátu a klíčů. Následující páry certifikátů a klíčů je potřeba zkopírovat do podřízeného zařízení IoT a odkazovat na je v aplikacích, které se připojují ke službě IoT Hub:

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