Udostępnij za pośrednictwem


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

Dotyczy ikony:yes IoT Edge 1.1

Ważne

IoT Edge 1.1 data zakończenia wsparcia wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji IoT Edge, zobacz Update IoT Edge.

IoT Edge urządzenia wymagają certyfikatów na potrzeby bezpiecznej komunikacji między środowiskiem uruchomieniowym, modułami i wszystkimi urządzeniami podrzędnymi. Jeśli nie masz urzędu certyfikacji do utworzenia wymaganych certyfikatów, możesz użyć certyfikatów demonstracyjnych do wypróbowania IoT Edge funkcji w środowisku testowym. W tym artykule opisano funkcje skryptów generowania certyfikatów, które IoT Edge zapewnia do testowania.

Ostrzeżenie

Te certyfikaty wygasają w ciągu 30 dni i nie powinny być używane w żadnym scenariuszu produkcyjnym.

Certyfikaty można utworzyć na dowolnym komputerze, a następnie skopiować je na urządzenie IoT Edge lub wygenerować certyfikaty bezpośrednio na urządzeniu IoT Edge.

Wymagania wstępne

Maszyna programowa z zainstalowanym rozwiązaniem Git.

Pobieranie skryptów certyfikatu testowego i konfigurowanie katalogu roboczego

Repozytorium 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, należy zainstalować program OpenSSL, a następnie sklonować skrypty generowania i skonfigurować je do uruchamiania lokalnie w programie PowerShell.

Instalowanie programu OpenSSL

Zainstaluj program OpenSSL dla systemu Windows na maszynie, której używasz do generowania certyfikatów. Jeśli na urządzeniu z systemem Windows jest już zainstalowany program OpenSSL, upewnij się, że openssl.exe jest dostępna w zmiennej środowiskowej PATH.

Istnieje kilka sposobów instalowania biblioteki OpenSSL, w tym następujących opcji:

  • Łatwiejsze: Pobierz i zainstaluj wszystkie 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 maszynie samodzielnie lub za pośrednictwem narzędzia vcpkg. Instrukcje wymienione poniżej używają narzędzia vcpkg do pobierania kodu źródłowego, kompilowania i instalowania biblioteki OpenSSL na maszynie z systemem Windows, wykonując proste kroki.

    1. Przejdź do katalogu, w którym chcesz zainstalować program vcpkg. Postępuj zgodnie z instrukcjami, aby pobrać i zainstalować program 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 zwykle 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 IoT Edge i wykonasz skrypty.

  1. Otwórz okno programu PowerShell w trybie administratora.

  2. Sklonuj repozytorium git IoT Edge zawierające 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, w którym chcesz pracować, i skopiuj tam skrypty certyfikatu. Wszystkie pliki certyfikatów i kluczy zostaną utworzone 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 jest iotedge-master taka sama, a reszta ścieżki jest taka sama.

  4. Włącz program PowerShell, aby uruchomić skrypty.

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

    . .\ca-certs.ps1
    

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

  6. Sprawdź, czy program OpenSSL został poprawnie zainstalowany i upewnij się, że nie będą występować kolizje nazw z istniejącymi certyfikatami. Jeśli występują problemy, dane wyjściowe skryptu powinny opisać sposób ich naprawiania w systemie.

    Test-CACertsPrerequisites
    

Tworzenie certyfikatu głównego urzędu certyfikacji

Uruchom ten skrypt, aby wygenerować główny urząd certyfikacji wymagany dla każdego kroku w tym artykule.

Certyfikat głównego urzędu certyfikacji służy do tworzenia wszystkich innych certyfikatów demonstracyjnych na potrzeby testowania scenariusza IoT Edge. Możesz nadal używać tego samego certyfikatu głównego urzędu certyfikacji do tworzenia certyfikatów demonstracyjnych dla wielu urządzeń IoT Edge lub podrzędnych.

Jeśli masz już jeden certyfikat głównego urzędu certyfikacji w folderze roboczym, nie utwórz nowego. Nowy certyfikat głównego urzędu certyfikacji zastąpi stary, a wszystkie certyfikaty podrzędne wykonane ze starego urzędu certyfikacji przestaną działać. Jeśli chcesz mieć wiele certyfikatów głównego urzędu certyfikacji, pamiętaj, aby zarządzać nimi w oddzielnych folderach.

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

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

    New-CACertsCertChain rsa
    

    To polecenie skryptu tworzy kilka plików certyfikatów i kluczy, ale gdy artykuły pytają o certyfikat głównego urzędu certyfikacji, użyj następującego pliku:

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

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

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

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

Te certyfikaty działają niezależnie od tego, czy używasz ręcznej aprowizacji, 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 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 IoT Edge i klucz prywatny za pomocą następującego polecenia:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    Nazwa przekazywana do tego polecenia to identyfikator urządzenia dla 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 przez certyfikat pośredni wygenerowany wcześniej. Zawiera tylko certyfikat tożsamości. Określ w pliku konfiguracji dla rejestracji indywidualnej usługi DPS lub aprowizacji 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 dla 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 urządzenia

Te certyfikaty są wymagane w scenariuszach bramy, ponieważ certyfikat urzędu certyfikacji urządzenia jest sposobem, w jaki urządzenie IoT Edge weryfikuje jego tożsamość na urządzeniach podrzędnych. Możesz pominąć tę sekcję, jeśli nie łączysz żadnych urządzeń podrzędnych z IoT Edge.

Certyfikat urzędu certyfikacji urządzenia jest również odpowiedzialny za tworzenie certyfikatów dla modułów uruchomionych na urządzeniu, ale IoT Edge środowisko uruchomieniowe może utworzyć tymczasowy certyfikat, jeśli urząd certyfikacji urządzenia nie jest skonfigurowany. Certyfikaty urzędu certyfikacji urządzenia są dostępne w sekcji config.yaml Certyfikat pliku 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 IoT Edge urzędu certyfikacji i klucz prywatny przy użyciu następującego polecenia. Podaj nazwę certyfikatu urzędu certyfikacji. Nazwa przekazana do polecenia New-CACertsEdgeDevicenie powinna być taka sama jak parametr nazwy hosta w pliku konfiguracji lub identyfikator urządzenia w IoT Hub.

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. To polecenie tworzy kilka plików certyfikatów i kluczy. Poniższa para certyfikatów i kluczy musi zostać skopiowana na urządzenie IoT Edge i przywoływane w pliku konfiguracji:

    • certs\iot-edge-device-ca-<CA cert name>-full-chain.cert.pem
    • private\iot-edge-device-ca-<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 IoT Hub lub DPS. Jeśli chcesz użyć uwierzytelniania za pomocą klucza symetrycznego, nie musisz tworzyć certyfikatów dla urządzenia podrzędnego i można 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 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 pełny ł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 należy pobrać szesnastkowy "odcisk palca" z certyfikatów w celu udostępnienia IoT Hub. Urządzenie IoT wymaga również kopii certyfikatów urządzenia, aby umożliwić uwierzytelnianie za pomocą 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 (podstawowe i pomocnicze) dla urządzenia podrzędnego. Łatwa konwencja nazewnictwa do użycia polega na utworzeniu certyfikatów o nazwie urządzenia IoT, a następnie etykiecie podstawowej lub pomocniczej. 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 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 IoT Hub) z każdego certyfikatu. Odcisk palca jest ciągiem szesnastkowym szesnastkowym. Użyj następującego polecenia openssl, aby wyświetlić certyfikat i znaleźć odcisk palca:

    openssl x509 -in certs\iot-device-<device name>-primary.cert.pem -text -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, aby 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 za pomocą IoT Hub.

Certyfikaty w tej sekcji dotyczą kroków z serii samouczków dotyczących certyfikatów X.509 IoT Hub. Aby zapoznać się z wprowadzeniem tej serii, zobacz Understanding Public Key Cryptography and X.509 Public Key Infrastructure (Omówienie kryptografii klucza publicznego i infrastruktury kluczy publicznych X.509 ).

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

  2. Jeśli nie wybrano automatycznej weryfikacji, użyj kodu podanego w 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 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 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