Ćwiczenie — generowanie i konfigurowanie certyfikatu X.509 urzędu certyfikacji przy użyciu protokołu OpenSSL

Ukończone

W tym ćwiczeniu wygenerujesz certyfikat X.509 urzędu certyfikacji przy użyciu biblioteki OpenSSL w usłudze Azure Cloud Shell, a następnie utworzysz grupę rejestracji w wystąpieniu usługi Device Provisioning Service (DPS) dla urządzeń IoT w celu aprowizacji przy użyciu uwierzytelniania X.509.

Ten certyfikat urzędu certyfikacji X.509 służy do podpisywania certyfikatów urządzeń dla każdego urządzenia w tej grupie rejestracji. Grupa rejestracji w usłudze DPS wymaga tylko kopii tego najwyższego certyfikatu urzędu certyfikacji. Gdy urządzenie łączy się z usługą DPS w celu aprowizacji, przedstawia łańcuch certyfikatów urzędu, który pokazuje certyfikat urządzenia, wszelkie certyfikaty pośrednie i certyfikat najwyższego urzędu certyfikacji.

Zadanie 1. Generowanie certyfikatów głównego i pośredniego urzędu certyfikacji

W tej sekcji wygenerujesz certyfikat X.509 urzędu certyfikacji przy użyciu biblioteki OpenSSL. Ten certyfikat służy do konfigurowania rejestracji grupy w usłudze DPS.

  1. W piaskownicy platformy Azure utwórz katalog o nazwie certificates , a następnie przejdź do nowego katalogu przy użyciu następujących poleceń:

    mkdir certificates
    cd certificates
    
  2. Pobierz skrypt pomocnika i dwa pliki konfiguracji openSSL używane do tworzenia certyfikatów X.509.

    Pobieranie plików

    curl https://raw.githubusercontent.com/Azure/azure-iot-sdk-c/main/tools/CACertificates/certGen.sh --output certGen.sh
    curl https://raw.githubusercontent.com/Azure/azure-iot-sdk-c/main/tools/CACertificates/openssl_device_intermediate_ca.cnf --output openssl_device_intermediate_ca.cnf
    curl https://raw.githubusercontent.com/Azure/azure-iot-sdk-c/main/tools/CACertificates/openssl_root_ca.cnf --output openssl_root_ca.cnf
    

    Zaktualizuj uprawnienia skryptu, aby użytkownik mógł go odczytywać, zapisywać i wykonywać.

    chmod 700 certGen.sh
    

    Skrypt pomocnika i pliki pomocnicze są hostowane w projekcie typu open source Azure/azure-iot-sdk-c hostowanym w usłudze GitHub, który jest składnikiem zestawu AZURE IoT Device SDK. Skrypt pomocnika certGen.sh umożliwia sprawdzenie, jak certyfikaty urzędu certyfikacji są używane bez zbyt głębokiego zagłębienia się w szczegóły konfiguracji biblioteki OpenSSL (która znajduje się poza zakresem tego modułu).

    Aby uzyskać więcej instrukcji dotyczących używania tego skryptu pomocnika oraz instrukcji dotyczących używania programu PowerShell zamiast powłoki Bash, zobacz: Zarządzanie certyfikatami testowego urzędu certyfikacji dla przykładów i samouczków

    Ostrzeżenie

    Certyfikaty utworzone przez ten skrypt pomocnika NIE MOGĄ być używane w środowisku produkcyjnym. Zawierają one zakodowane hasła ("1234"), wygasają po upływie 30 dni i są udostępniane tylko do celów demonstracyjnych. W przypadku korzystania z certyfikatów urzędu certyfikacji w środowisku produkcyjnym należy zastosować najlepsze rozwiązania w zakresie zabezpieczeń firmy dotyczące tworzenia certyfikatów i zarządzania okresem istnienia.

    Jeśli chcesz, możesz szybko odczytać zawartość pobranego pliku skryptu cat za pomocą polecenia .

    cat certGen.sh
    
  3. Wprowadź następujące polecenie, aby wygenerować certyfikaty główne i pośrednie:

    ./certGen.sh create_root_and_intermediate
    

    Zwróć uwagę, że skrypt został uruchomiony z opcją create_root_and_intermediate . To polecenie zakłada, że uruchamiasz skrypt z poziomu katalogu ~/certificates .

    To polecenie wygenerowało certyfikat głównego urzędu certyfikacji o nazwie azure-iot-test-only.root.ca.cert.pem i umieścił go w katalogu ./certs (w katalogu certyfikatów , który został utworzony).

Zadanie 2. Tworzenie rejestracji grupy (certyfikat X.509) w usłudze DPS

  1. W piaskownicy platformy Azure przekaż certyfikat urzędu certyfikacji do wystąpienia usługi Device Provisioning Service. Nazwa certyfikatu to groupCA-sensors. Parametr verified true polecenia umożliwia automatyczne zweryfikowanie certyfikatu podczas przekazywania, pomijając konieczność wykonania dodatkowego kroku na potrzeby generowania dowodu posiadania certyfikatu.

    az iot dps certificate create --dps-name dps-$suffix --certificate-name groupCA-sensors --path ~/certificates/certs/azure-iot-test-only.root.ca.cert.pem --verified true
    
  2. Utwórz grupę rejestracji w wystąpieniu usługi DPS.

    az iot dps enrollment-group create --dps-name dps-$suffix --enrollment-id enrollgroup-sensors --root-ca-name groupCA-sensors --iot-hubs hub-$suffix.azure-devices.net --initial-twin-properties "{'telemetryDelay':'1'}" --allocation-policy static
    

    To polecenie tworzy grupę rejestracji z następującymi parametrami:

    Parametr Opis
    --dps-name Identyfikator usługi DPS.
    --enrollment-id Nazwa nowej grupy rejestracji.
    --root-ca-name Ustawia metodę zaświadczania dla grupy rejestracji jako certyfikaty z podpisem X.509 urzędu certyfikacji i wskazuje certyfikat urzędu certyfikacji przekazany do usługi DPS.
    --iot-hubs Konfiguruje usługę DPS w celu aprowizacji urządzeń w tej grupie rejestracji w centrum IoT, które zostało utworzone i połączone z usługą DPS na początku tego modułu.
    --initial-twin-properties Ustawia żądaną właściwość odbieraną przez wszystkie urządzenia w tej grupie rejestracji po ich aprowizacji. Urządzenia używają właściwości properties.desired.telemetryDelay , aby ustawić opóźnienie czasu odczytu i wysyłania danych telemetrycznych do usługi IoT Hub.
    allocation-policy Służy do określania sposobu przypisywanego urządzenia do usługi IoT Hub. Zasady statyczne umożliwiają wyznaczenie pojedynczego centrum IoT, do którego chcesz przypisać urządzenia.

Sprawdź swoją pracę

  1. Sprawdź, czy główny urząd certyfikacji azure-iot-test-only.root.ca.cert.pem został utworzony w folderze /certs.

    dir ~/certificates/certs/
    
  2. Sprawdź, czy certyfikat urzędu certyfikacji został przekazany do wystąpienia usługi Device Provisioning Service (DPS).

    az iot dps certificate show --certificate-name groupCA-sensors --dps-name dps-$suffix
    

    Sprawdź informacje zwrotne polecenia. Sprawdź, czy nazwa certyfikatu urzędu certyfikacji jest groupCA-sensors jak pokazano tutaj.

    "name": "groupCA-sensors"
    
  3. Sprawdź, czy to polecenie zwraca informacje, aby sprawdzić, czy grupa rejestracji usługi DPS została utworzona z parametrami określonymi w az iot dps certificate create instrukcji w zadaniu 2, krok 2.

    az iot dps enrollment-group show --dps-name dps-$suffix --enrollment-id enrollgroup-sensors