Udostępnij przez


Tworzenie certyfikatów demonstracyjnych do testowania funkcji urządzenia usługi IoT Edge

Dotyczy:Znacznik wyboru usługi IoT Edge 1.5 IoT Edge 1.5

Ważne

Obsługiwana wersja usługi IoT Edge 1.5 LTS. Usługa IoT Edge 1.4 LTS kończy się od 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Urządzenia usługi IoT Edge potrzebują certyfikatów do bezpiecznej komunikacji między środowiskiem uruchomieniowym, modułami i dowolnymi urządzeniami podrzędnymi. Jeśli nie masz urzędu certyfikacji do utworzenia wymaganych certyfikatów, użyj certyfikatów demonstracyjnych, aby wypróbować funkcje usługi IoT Edge w środowisku testowym. W tym artykule wyjaśniono skrypty generowania certyfikatów zapewniane przez usługę IoT Edge na potrzeby testowania.

Ostrzeżenie

Te certyfikaty wygasają za 30 dni i nie należy ich używać w żadnym scenariuszu produkcyjnym.

Utwórz certyfikaty na dowolnym komputerze, a następnie skopiuj je na urządzenie usługi IoT Edge lub wygeneruj certyfikaty bezpośrednio na urządzeniu usługi IoT Edge.

Wymagania wstępne

Użyj komputera do oprogramowania z zainstalowanym Git.

Pobieranie skryptów certyfikatu testowego i konfigurowanie katalogu roboczego

Repozytorium usługi IoT Edge w usłudze GitHub zawiera skrypty generowania certyfikatów, których można użyć do tworzenia certyfikatów demonstracyjnych. Ta sekcja zawiera instrukcje dotyczące przygotowywania skryptów do uruchomienia na komputerze w systemie Windows lub Linux.

Aby utworzyć certyfikaty demonstracyjne na urządzeniu z systemem Windows, zainstaluj program OpenSSL, a następnie sklonuj skrypty generowania i skonfiguruj je do uruchamiania lokalnie w programie PowerShell.

Zainstaluj OpenSSL

Zainstaluj program OpenSSL dla systemu Windows na urządzeniu używanym do generowania certyfikatów. Jeśli biblioteka OpenSSL jest już zainstalowana, upewnij się, że openssl.exe jest dostępna w zmiennej środowiskowej PATH.

Program OpenSSL można zainstalować na różne sposoby:

  • Łatwiejsze: pobierz i zainstaluj pliki binarne OpenSSL innych firm, na przykład z biblioteki OpenSSL w pliku SourceForge. Dodaj pełną ścieżkę, aby openssl.exe do zmiennej środowiskowej PATH.

  • Zalecane: Pobierz kod źródłowy openSSL i skompiluj pliki binarne na urządzeniu lub użyj narzędzia vcpkg. Poniższe instrukcje używają narzędzia vcpkg do pobierania kodu źródłowego, kompilowania i instalowania biblioteki OpenSSL na urządzeniu z systemem Windows.

    1. Przejdź do katalogu, w którym chcesz zainstalować program vcpkg. Postępuj zgodnie z instrukcjami, aby pobrać i zainstalować narzędzie vcpkg.

    2. Po zainstalowaniu narzędzia vcpkg uruchom następujące polecenie w wierszu polecenia programu PowerShell, aby zainstalować pakiet OpenSSL dla systemu Windows x64. Instalacja zazwyczaj trwa około 5 minut.

      .\vcpkg install openssl:x64-windows
      
    3. Dodaj <vcpkg path>\installed\x64-windows\tools\openssl do zmiennej środowiskowej PATH, aby plik openssl.exe był dostępny do wywołania.

Przygotowywanie skryptów w programie PowerShell

Repozytorium git usługi Azure IoT Edge zawiera skrypty, których można użyć do generowania certyfikatów testowych. W tej sekcji sklonujesz repozytorium usługi IoT Edge i wykonasz skrypty.

  1. Otwórz program PowerShell w trybie administratora.

  2. Sklonuj repozytorium git usługi IoT Edge, które zawiera skrypty do generowania certyfikatów demonstracyjnych. git clone Użyj polecenia lub pobierz plik ZIP.

    git clone https://github.com/Azure/iotedge.git
    
  3. Utwórz katalog i skopiuj tam skrypty certyfikatu. Wszystkie pliki certyfikatów i kluczy są tworzone w tym katalogu.

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

    Jeśli repozytorium zostało pobrane jako plik ZIP, nazwa folderu to iotedge-master i pozostała część ścieżki jest taka sama.

  4. Ustaw zasady wykonywania programu PowerShell, aby uruchamiać skrypty.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Zaimportuj funkcje używane przez skrypty do globalnej przestrzeni nazw programu PowerShell.

    . .\ca-certs.ps1
    

    W oknie programu PowerShell jest wyświetlane ostrzeżenie, że certyfikaty wygenerowane przez ten skrypt są przeznaczone tylko do testowania i nie powinny być używane w scenariuszach produkcyjnych.

  6. Sprawdź, czy biblioteka OpenSSL została poprawnie zainstalowana i upewnij się, że nie będzie kolizji nazw z istniejącymi certyfikatami. Jeśli występują problemy, dane wyjściowe skryptu powinny opisywać sposób ich naprawiania w systemie.

    Test-CACertsPrerequisites
    

Tworzenie certyfikatu głównego urzędu certyfikacji

Uruchom ten skrypt, aby wygenerować certyfikat głównego urzędu certyfikacji. Ten certyfikat jest potrzebny dla każdego kroku w tym artykule.

Użyj certyfikatu głównego urzędu certyfikacji, aby utworzyć inne certyfikaty demonstracyjne na potrzeby testowania scenariusza usługi IoT Edge. Możesz użyć tego samego certyfikatu głównego urzędu certyfikacji, aby utworzyć certyfikaty demonstracyjne dla wielu urządzeń IoT Edge lub urządzeń podrzędnych.

Jeśli masz już certyfikat głównego urzędu certyfikacji w folderze roboczym, nie twórz nowego. Utworzenie nowego certyfikatu głównego CA zastępuje stary, a wszystkie certyfikaty podrzędne utworzone na podstawie starego certyfikatu przestają działać. Jeśli potrzebujesz wielu certyfikatów głównego urzędu certyfikacji, zarządzaj nimi w oddzielnych folderach.

  1. Przejdź do katalogu wrkdir roboczego, w którym umieszczasz skrypty generowania certyfikatów.

  2. Utwórz certyfikat głównego urzędu certyfikacji i podpisz jeden certyfikat pośredniczący. Certyfikaty są umieszczane w katalogu roboczym.

    New-CACertsCertChain rsa
    

    Ten skrypt tworzy kilka plików certyfikatów i kluczy. Gdy artykuły pytają o certyfikat głównego urzędu certyfikacji, użyj tego pliku:

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

Ten certyfikat jest potrzebny przed utworzeniem większej liczby certyfikatów dla urządzeń usługi IoT Edge i urządzeń podrzędnych, zgodnie z opisem w następnych sekcjach.

Tworzenie certyfikatu tożsamości dla urządzenia usługi IoT Edge

Certyfikaty tożsamości urządzeń usługi IoT Edge są używane do aprowizowania urządzeń usługi IoT Edge, jeśli zdecydujesz się używać uwierzytelniania certyfikatu X.509. Jeśli używasz klucza symetrycznego do uwierzytelniania w usłudze IoT Hub lub DPS, te certyfikaty nie są potrzebne i możesz pominąć tę sekcję.

Te certyfikaty działają niezależnie od tego, czy używasz aprowizacji ręcznej, czy automatycznej aprowizacji za pośrednictwem usługi Azure IoT Hub Device Provisioning Service (DPS).

Certyfikaty tożsamości urządzeń są dostępne w sekcji Aprowizowanie pliku konfiguracji na urządzeniu usługi IoT Edge.

  1. Przejdź do katalogu wrkdir roboczego z skryptami generowania certyfikatów i certyfikatem głównego urzędu certyfikacji.

  2. Utwórz certyfikat tożsamości urządzenia usługi IoT Edge i klucz prywatny przy użyciu następującego polecenia:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    Nazwa, którą wprowadzisz dla tego polecenia, jest identyfikatorem urządzenia IoT Edge w IoT Hub.

  3. Nowe polecenie tożsamości urządzenia tworzy kilka plików certyfikatów i kluczy:

    Typ Plik opis
    Certyfikat tożsamości urządzenia certs\iot-edge-device-identity-<device-id>.cert.pem Podpisany wcześniej przez wygenerowany certyfikat pośredni. Zawiera tylko certyfikat tożsamości. Określ w pliku konfiguracji dla rejestracji indywidualnej usługi DPS lub aprowizacji usługi IoT Hub.
    Certyfikat pełnego łańcucha certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem Zawiera pełny łańcuch certyfikatów, w tym certyfikat pośredni. Określ w pliku konfiguracji usługi IoT Edge, aby przedstawić usługę DPS na potrzeby aprowizacji rejestracji grupowej.
    Klucz prywatny private\iot-edge-device-identity-<device-id>.key.pem Klucz prywatny skojarzony z certyfikatem tożsamości urządzenia. Należy określić w pliku konfiguracji, o ile używasz pewnego rodzaju uwierzytelniania certyfikatu (odcisk palca lub urzędu certyfikacji) dla usługi DPS lub IoT Hub.

Tworzenie certyfikatów urzędu certyfikacji usługi Edge

Te certyfikaty są potrzebne w scenariuszach korzystania z bramy, ponieważ certyfikat urzędu certyfikacji usługi Edge umożliwia urządzeniu IoT Edge zweryfikowanie jego tożsamości przed urządzeniami podrzędnymi. Pomiń tę sekcję, jeśli nie łączysz żadnych urządzeń podrzędnych z usługą IoT Edge.

Certyfikat Edge CA również tworzy certyfikaty dla modułów działających na urządzeniu, ale środowisko uruchomieniowe IoT Edge może tworzyć certyfikaty tymczasowe, jeśli Edge CA nie jest skonfigurowany. Umieść certyfikaty Edge CA w sekcji Edge CA pliku config.toml na urządzeniu IoT Edge. Aby dowiedzieć się więcej, zobacz Omówienie sposobu korzystania z certyfikatów w usłudze Azure IoT Edge.

  1. Przejdź do katalogu wrkdir roboczego z skryptami generowania certyfikatów i certyfikatem głównego urzędu certyfikacji.

  2. Utwórz certyfikat urzędu certyfikacji usługi IoT Edge i klucz prywatny przy użyciu następującego polecenia. Wprowadź nazwę certyfikatu urzędu certyfikacji. Nie używaj tej samej nazwy co parametr nazwy hosta w pliku konfiguracji ani identyfikatora urządzenia w usłudze IoT Hub dla polecenia New-CACertsEdgeDevice .

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. To polecenie tworzy kilka plików certyfikatów i kluczy. Skopiuj następującą parę certyfikatów i kluczy do urządzenia usługi IoT Edge i odwołaj się do nich w pliku konfiguracji:

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

Tworzenie certyfikatów urządzeń podrzędnych

Te certyfikaty są wymagane do skonfigurowania podrzędnego urządzenia IoT dla scenariusza bramy i chcą używać uwierzytelniania X.509 z usługą IoT Hub lub DPS. Jeśli chcesz użyć uwierzytelniania klucza symetrycznego, nie musisz tworzyć certyfikatów dla urządzenia podrzędnego i pominąć tę sekcję.

Istnieją dwa sposoby uwierzytelniania urządzenia IoT przy użyciu certyfikatów X.509: przy użyciu certyfikatów z podpisem własnym lub certyfikatów podpisanych przez urząd certyfikacji.

  • W przypadku uwierzytelniania z podpisem własnym X.509, czasami nazywanego uwierzytelnianiem odciskiem palca, należy utworzyć nowe certyfikaty, aby umieścić je na urządzeniu IoT. Te certyfikaty mają w nich odcisk palca, który udostępniasz usłudze IoT Hub na potrzeby uwierzytelniania.
  • W przypadku uwierzytelniania podpisanego przez urząd certyfikacji X.509 potrzebny jest certyfikat głównego urzędu certyfikacji zarejestrowany w usłudze IoT Hub lub DPS używany do podpisywania certyfikatów dla urządzenia IoT. Każde urządzenie korzystające z certyfikatu wystawionego przez certyfikat głównego urzędu certyfikacji lub dowolny z jego certyfikatów pośrednich może uwierzytelniać się tak długo, jak cały łańcuch jest prezentowany przez urządzenie.

Skrypty generowania certyfikatów mogą pomóc w tworzeniu certyfikatów demonstracyjnych w celu przetestowania jednego z tych scenariuszy uwierzytelniania.

Certyfikaty z podpisem własnym

Podczas uwierzytelniania urządzenia IoT przy użyciu certyfikatów z podpisem własnym należy utworzyć certyfikaty urządzeń na podstawie certyfikatu głównego urzędu certyfikacji dla rozwiązania. Następnie pobierasz szesnastkowy odcisk palca z certyfikatów w celu udostępnienia go usłudze IoT Hub. Urządzenie IoT wymaga również kopii certyfikatów urządzenia, aby można je było uwierzytelniać za pomocą usługi IoT Hub.

  1. Przejdź do katalogu wrkdir roboczego z skryptami generowania certyfikatów i certyfikatem głównego urzędu certyfikacji.

  2. Utwórz dwa certyfikaty (podstawowy i pomocniczy) dla urządzenia podrzędnego. Łatwa konwencja nazewnictwa do użycia polega na utworzeniu certyfikatów z nazwą urządzenia IoT, a następnie etykietą podstawową lub pomocniczą. Na przykład:

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

    To polecenie skryptu tworzy kilka plików certyfikatów i kluczy. Następujące pary certyfikatów i kluczy muszą zostać skopiowane do podrzędnego urządzenia IoT i przywoływane w aplikacjach łączących się z usługą 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. Pobierz odcisk palca SHA1 (nazywany odciskiem palca w kontekstach usługi IoT Hub) z każdego certyfikatu. Odcisk palca to 40 szesnastkowy ciąg znaków. Użyj następującego polecenia openssl, aby wyświetlić certyfikat i znaleźć odcisk palca:

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

    Uruchom to polecenie dwa razy, raz dla certyfikatu podstawowego i raz dla certyfikatu pomocniczego. Odciski palca dla obu certyfikatów należy podać podczas rejestrowania nowego urządzenia IoT przy użyciu certyfikatów X.509 z podpisem własnym.

Certyfikaty podpisane przez urząd certyfikacji

Podczas uwierzytelniania urządzenia IoT przy użyciu certyfikatów podpisanych przez urząd certyfikacji należy przekazać certyfikat głównego urzędu certyfikacji dla rozwiązania do usługi IoT Hub. Użyj tego samego certyfikatu głównego urzędu certyfikacji, aby utworzyć certyfikaty urządzeń do umieszczenia na urządzeniu IoT w celu uwierzytelnienia w usłudze IoT Hub.

Certyfikaty w tej sekcji dotyczą kroków z serii samouczków dotyczących certyfikatów X.509 usługi IoT Hub. Zobacz Omówienie kryptografii klucza publicznego i infrastruktury kluczy publicznych X.509, aby zapoznać się z wprowadzeniem tej serii.

  1. Przekaż plik certyfikatu głównego urzędu certyfikacji z katalogu roboczego , certs\azure-iot-test-only.root.ca.cert.pemdo centrum IoT Hub.

  2. Jeśli nie wybrano automatycznej weryfikacji, użyj kodu podanego w witrynie Azure Portal, aby sprawdzić, czy jesteś właścicielem tego certyfikatu głównego urzędu certyfikacji.

    New-CACertsVerificationCert "<verification code>"
    
  3. Utwórz łańcuch certyfikatów dla urządzenia podrzędnego. Użyj tego samego identyfikatora urządzenia zarejestrowanego w usłudze IoT Hub.

    New-CACertsDevice "<device id>"
    

    To polecenie skryptu tworzy kilka plików certyfikatów i kluczy. Następujące pary certyfikatów i kluczy muszą zostać skopiowane do podrzędnego urządzenia IoT i przywoływane w aplikacjach łączących się z usługą 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