Sdílet prostřednictvím


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

Důležité

Podporovanou verzí je IoT Edge 1.5 LTS. IoT Edge 1.4 LTS je konec životnosti od 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Zařízení IoT Edge potřebují 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ů, použijte ukázkové certifikáty k vyzkoušení funkcí IoT Edge ve vašem testovacím prostředí. Tento článek vysvětluje skripty 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ěli byste je používat v žádném produkčním scénáři.

Vytvořte certifikáty na libovolném počítači a pak je zkopírujte do zařízení IoT Edge nebo vygenerujte certifikáty přímo na zařízení IoT Edge.

Požadavky

Použijte 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, nainstalujte OpenSSL, pak naklonujte skripty generování a nastavte je tak, aby běžely místně v PowerShellu.

Nainstalujte OpenSSL

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

OpenSSL můžete nainstalovat různými způsoby:

  • 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čený: Stáhněte si zdrojový kód OpenSSL a sestavte binární soubory na svém zařízení nebo použijte vcpkg. Následující pokyny používají vcpkg ke stažení zdrojového kódu, kompilace a instalace OpenSSL na zařízení s Windows.

    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 PowerShell 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ář 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. Nastavte zásady spouštění PowerShellu tak, aby spouštěly skripty.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Importujte 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 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řenový certifikát certifikační autority. Tento certifikát potřebujete pro každý krok v tomto článku.

Pomocí kořenového certifikátu certifikační autority můžete vytvořit další ukázkové certifikáty pro testování scénáře IoT Edge. Stejný kořenový certifikát certifikační autority můžete použít 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 v pracovní složce kořenový certifikát certifikační autority, nevytvořte nový certifikát. Vytvoření nového kořenového certifikátu 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 potřebujete více kořenových certifikátů certifikační autority, spravujte je v samostatných složkách.

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

  2. Vytvořte kořenový certifikát certifikační autority a podepište jeden zprostředkující certifikát. Certifikáty se umístí do vašeho pracovního adresáře.

    New-CACertsCertChain rsa
    

    Tento skript vytvoří několik souborů certifikátu a klíčů. Pokud články požádají o certifikát kořenové certifikační autority, použijte tento soubor:

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

Tento certifikát budete potřebovat 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ý má 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ý zadáte pro tento příkaz, 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ů certifikační autority Edge

Tyto certifikáty potřebujete pro scénáře brány , protože certifikát certifikační autority Edge umožňuje zařízení IoT Edge ověřit identitu podřízených zařízení. Pokud ke službě IoT Edge nepřipojíte žádná podřízená zařízení, přeskočte tuto část.

Certifikát Edge CA nejen vytváří certifikáty pro moduly běžící na zařízení, ale modul runtime IoT Edge může vytvořit dočasné certifikáty, pokud není nastaven Edge CA. Certifikáty certifikační autority Edge umístěte do části Certifikační autorita Edge v config.toml 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. Nepoužívejte stejný název jako parametr hostname v konfiguračním souboru nebo ID zařízení ve službě IoT Hub pro příkaz New-CACertsEdgeDevice .

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Tento příkaz vytvoří několik souborů certifikátu a klíčů. Zkopírujte následující pár certifikátů a klíčů do zařízení IoT Edge a odkazujte na ně v konfiguračním souboru:

    • certs\iot-edge-device-<CA cert name>-full-chain.cert.pem
    • private\iot-edge-device-<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