Zarządzanie certyfikatami na urządzeniu IoT EdgeManage certificates on an IoT Edge device

Dotyczy:  ikona tak IoT Edge 1,1 innych wersji: IoT Edge 1,2Applies to: yes icon IoT Edge 1.1 Other versions: IoT Edge 1.2

Dotyczy:  ikona tak IoT Edge 1,2 innych wersji: IoT Edge 1,1Applies to: yes icon IoT Edge 1.2 Other versions: IoT Edge 1.1

Wszystkie urządzenia IoT Edge używają certyfikatów do tworzenia bezpiecznych połączeń między środowiskiem uruchomieniowym a dowolnymi modułami uruchomionymi na urządzeniu.All IoT Edge devices use certificates to create secure connections between the runtime and any modules running on the device. IoT Edge urządzenia działające jako bramy używają tych samych certyfikatów do łączenia się z urządzeniami podrzędnymi.IoT Edge devices functioning as gateways use these same certificates to connect to their downstream devices, too.

Instalowanie certyfikatów produkcyjnychInstall production certificates

Podczas pierwszej instalacji IoT Edge i aprowizacji urządzenia urządzenie zostanie skonfigurowane z certyfikatami tymczasowymi, aby umożliwić przetestowanie usługi.When you first install IoT Edge and provision your device, the device is set up with temporary certificates so that you can test the service. Te certyfikaty tymczasowe wygasną przez 90 dni lub można je zresetować przez ponowne uruchomienie komputera.These temporary certificates expire in 90 days, or can be reset by restarting your machine. Gdy przejdziesz do scenariusza produkcyjnego lub chcesz utworzyć urządzenie bramy, musisz podać własne certyfikaty.Once you move into a production scenario, or you want to create a gateway device, you need to provide your own certificates. W tym artykule przedstawiono procedurę instalowania certyfikatów na IoT Edge urządzeniach.This article demonstrates the steps to install certificates on your IoT Edge devices.

Aby dowiedzieć się więcej o różnych typach certyfikatów i ich rolach, zobacz Opis sposobu używania certyfikatów przez Azure IoT Edge.To learn more about the different types of certificates and their roles, see Understand how Azure IoT Edge uses certificates.

Uwaga

Termin "główny urząd certyfikacji" używany w tym artykule odnosi się do certyfikatu publicznego urzędu łańcucha certyfikatów dla rozwiązania IoT.The term "root CA" used throughout this article refers to the topmost authority public certificate of the certificate chain for your IoT solution. Nie trzeba używać certyfikatu głównego urzędu certyfikacji z certyfikatem lub administratorem urzędu certyfikacji w organizacji.You do not need to use the certificate root of a syndicated certificate authority, or the root of your organization's certificate authority. W wielu przypadkach jest to pośredni certyfikat publiczny urzędu certyfikacji.In many cases, it is actually an intermediate CA public certificate.

Wymagania wstępnePrerequisites

  • Urządzenie IoT Edge.An IoT Edge device.

    Jeśli nie masz skonfigurowanego urządzenia IoT Edge, możesz je utworzyć na maszynie wirtualnej platformy Azure.If you don't have an IoT Edge device set up, you can create one in an Azure virtual machine. Wykonaj kroki opisane w jednym z artykułów z przewodnikiem Szybki Start, aby utworzyć wirtualne urządzenie z systemem Linux lub utworzyć wirtualne urządzenie systemu Windows.Follow the steps in one of the quickstart articles to Create a virtual Linux device or Create a virtual Windows device.

  • Posiadanie certyfikatu głównego urzędu certyfikacji (CA) z podpisem własnym lub zakupionego od zaufanego komercyjnego urzędu certyfikacji, takiego jak Baltimore, VeriSign, DigiCert lub GlobalSign.Have a root certificate authority (CA) certificate, either self-signed or purchased from a trusted commercial certificate authority like Baltimore, Verisign, DigiCert, or GlobalSign.

    Jeśli nie masz jeszcze głównego urzędu certyfikacji, ale chcesz wypróbować IoT Edge funkcje wymagające certyfikatów produkcyjnych (na przykład scenariusze bramy), możesz utworzyć certyfikaty demonstracyjne do testowania funkcji IoT Edge urządzeń.If you don't have a root certificate authority yet, but want to try out IoT Edge features that require production certificates (like gateway scenarios) you can Create demo certificates to test IoT Edge device features.

Tworzenie certyfikatów produkcyjnychCreate production certificates

Aby utworzyć następujące pliki, należy użyć własnego urzędu certyfikacji:You should use your own certificate authority to create the following files:

  • Główny urząd certyfikacjiRoot CA
  • Certyfikat urzędu certyfikacji urządzeniaDevice CA certificate
  • Klucz prywatny urzędu certyfikacji urządzeniaDevice CA private key

Ten artykuł zawiera informacje o tym, jako że główny urząd certyfikacji nie jest najwyższym urzędem certyfikatu dla organizacji.In this article, what we refer to as the root CA is not the topmost certificate authority for an organization. Jest to najwyższy urząd certyfikacji dla scenariusza IoT Edge, do którego moduł IoT Edge Hub, moduły użytkownika i wszystkie urządzenia podrzędne używają do ustanawiania relacji zaufania między sobą.It's the topmost certificate authority for the IoT Edge scenario, which the IoT Edge hub module, user modules, and any downstream devices use to establish trust between each other.

Uwaga

Obecnie ograniczenie w libiothsm uniemożliwia korzystanie z certyfikatów, które wygasną od 1 stycznia 2038.Currently, a limitation in libiothsm prevents the use of certificates that expire on or after January 1, 2038.

Aby zapoznać się z przykładem tych certyfikatów, przejrzyj skrypty, które tworzą certyfikaty demonstracyjne w zarządzaniu testowymi certyfikatami urzędu certyfikacji dla przykładów i samouczków.To see an example of these certificates, review the scripts that create demo certificates in Managing test CA certificates for samples and tutorials.

Instalowanie certyfikatów na urządzeniuInstall certificates on the device

Zainstaluj łańcuch certyfikatów na urządzeniu IoT Edge i skonfiguruj środowisko uruchomieniowe IoT Edge, aby odwoływać się do nowych certyfikatów.Install your certificate chain on the IoT Edge device and configure the IoT Edge runtime to reference the new certificates.

Skopiuj trzy pliki certyfikatów i kluczy na urządzenie IoT Edge.Copy the three certificate and key files onto your IoT Edge device. Do przenoszenia plików certyfikatów można użyć usługi, takiej jak Azure Key Vault lub funkcja, taka jak Secure Copy Protocol .You can use a service like Azure Key Vault or a function like Secure copy protocol to move the certificate files. Jeśli certyfikaty zostały wygenerowane na urządzeniu IoT Edge, możesz pominąć ten krok i użyć ścieżki do katalogu roboczego.If you generated the certificates on the IoT Edge device itself, you can skip this step and use the path to the working directory.

Jeśli używasz IoT Edge dla systemu Linux w systemie Windows, musisz użyć klucza SSH znajdującego się w id_rsa pliku Azure IoT Edge do uwierzytelniania transferu plików między systemem operacyjnym hosta i maszyną wirtualną z systemem Linux.If you are using IoT Edge for Linux on Windows, you need to use the SSH key located in the Azure IoT Edge id_rsa file to authenticate file transfers between the host OS and the Linux virtual machine. Za pomocą następującego polecenia można wykonać uwierzytelnionego punktu połączenia:You can do an authenticated SCP using the following command:

C:\WINDOWS\System32\OpenSSH\scp.exe -i 'C:\Program Files\Azure IoT Edge\id_rsa' <PATH_TO_SOURCE_FILE> iotedge-user@<VM_IP>:<PATH_TO_FILE_DESTINATION>

Uwaga

Adres IP maszyny wirtualnej systemu Linux można zbadać za pomocą Get-EflowVmAddr polecenia.The Linux virtual machine's IP address can be queried via the Get-EflowVmAddr command.

Jeśli do tworzenia certyfikatów demonstracyjnychużyto przykładowych skryptów, Skopiuj następujące pliki na urządzenie IoT-Edge:If you used the sample scripts to Create demo certificates, copy the following files onto your IoT-Edge device:

  • Certyfikat urzędu certyfikacji urządzenia: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pemDevice CA certificate: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pem
  • Klucz prywatny urzędu certyfikacji urządzenia: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pemDevice CA private key: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pem
  • Główny urząd certyfikacji: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pemRoot CA: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem
  1. Otwórz plik konfiguracji demona Security IoT Edge.Open the IoT Edge security daemon config file.

    • Linux i IoT Edge dla systemu Linux w systemie Windows: /etc/iotedge/config.yamlLinux and IoT Edge for Linux on Windows: /etc/iotedge/config.yaml

    • System Windows korzystający z kontenerów systemu Windows: C:\ProgramData\iotedge\config.yamlWindows using Windows containers: C:\ProgramData\iotedge\config.yaml

  2. Ustaw właściwości certyfikatu w pliku config. YAML na ścieżkę identyfikatora URI, aby uzyskać certyfikat i pliki kluczy na urządzeniu IoT Edge.Set the certificate properties in config.yaml to the file URI path to the certificate and key files on the IoT Edge device. Usuń # znak przed właściwościami certyfikatu, aby usunąć komentarz z czterech wierszy.Remove the # character before the certificate properties to uncomment the four lines. Upewnij się, że w wierszu Certyfikaty: nie ma powyższego odstępu, a elementy zagnieżdżone są wcięte o dwie spacje.Make sure the certificates: line has no preceding whitespace and that nested items are indented by two spaces. Na przykład:For example:

    • Linux i IoT Edge dla systemu Linux w systemie Windows:Linux and IoT Edge for Linux on Windows:

      certificates:
         device_ca_cert: "file:///<path>/<device CA cert>"
         device_ca_pk: "file:///<path>/<device CA key>"
         trusted_ca_certs: "file:///<path>/<root CA cert>"
      
    • System Windows korzystający z kontenerów systemu Windows:Windows using Windows containers:

      certificates:
         device_ca_cert: "file:///C:/<path>/<device CA cert>"
         device_ca_pk: "file:///C:/<path>/<device CA key>"
         trusted_ca_certs: "file:///C:/<path>/<root CA cert>"
      
  3. Na urządzeniach z systemem Linux upewnij się, że użytkownik iotedge ma uprawnienia do odczytu w katalogu zawierającym certyfikaty.On Linux devices, make sure that the user iotedge has read permissions for the directory holding the certificates.

  4. Jeśli przed uruchomieniem lub ponownym IoT Edge uruchomieniem usługi IoT Edge na urządzeniu zostały wcześniej użyte inne certyfikaty, usuń je z następujących dwóch katalogów:If you've used any other certificates for IoT Edge on the device before, delete the files in the following two directories before starting or restarting IoT Edge:

    • Linux i IoT Edge dla systemu Linux w systemie Windows: /var/lib/iotedge/hsm/certs i /var/lib/iotedge/hsm/cert_keysLinux and IoT Edge for Linux on Windows: /var/lib/iotedge/hsm/certs and /var/lib/iotedge/hsm/cert_keys

    • Windows przy użyciu kontenerów systemu Windows: C:\ProgramData\iotedge\hsm\certs i C:\ProgramData\iotedge\hsm\cert_keysWindows using Windows containers: C:\ProgramData\iotedge\hsm\certs and C:\ProgramData\iotedge\hsm\cert_keys

  1. Otwórz plik konfiguracji demona zabezpieczeń IoT Edge: /etc/aziot/config.tomlOpen the IoT Edge security daemon config file: /etc/aziot/config.toml

  2. Znajdź trust_bundle_cert parametr na początku pliku.Find the trust_bundle_cert parameter at the beginning of the file. Usuń komentarz z tego wiersza i podaj identyfikator URI pliku dla certyfikatu głównego urzędu certyfikacji na urządzeniu.Uncomment this line, and provide the file URI to the root CA certificate on your device.

    trust_bundle_cert = "file:///<path>/<root CA cert>"
    
  3. Znajdź [edge_ca] sekcję w pliku config. toml.Find the [edge_ca] section in the config.toml file. Usuń znaczniki komentarza z wierszy w tej sekcji i podaj ścieżki URI pliku dla certyfikatów i plików kluczy na urządzeniu IoT Edge.Uncomment the lines in this section and provide the file URI paths for the certificate and key files on the IoT Edge device.

    [edge_ca]
    cert = "file:///<path>/<device CA cert>"
    pk = "file:///<path>/<device CA key>"
    
  4. Upewnij się, że użytkownik iotedge ma uprawnienia do odczytu w katalogu zawierającym certyfikaty.Make sure that the user iotedge has read permissions for the directory holding the certificates.

  5. Jeśli przed uruchomieniem lub ponownym IoT Edge uruchomieniem usługi IoT Edge na urządzeniu zostały wcześniej użyte inne certyfikaty, usuń je z następujących dwóch katalogów:If you've used any other certificates for IoT Edge on the device before, delete the files in the following two directories before starting or restarting IoT Edge:

    • /var/lib/aziot/certd/certs
    • /var/lib/aziot/keyd/keys

Dostosuj okres istnienia certyfikatuCustomize certificate lifetime

IoT Edge automatycznie generuje certyfikaty na urządzeniu w kilka przypadków, w tym:IoT Edge automatically generates certificates on the device in several cases, including:

  • Jeśli nie podano własnych certyfikatów produkcyjnych podczas instalowania i inicjowania obsługi administracyjnej IoT Edge, program IoT Edge Security Manager automatycznie wygeneruje certyfikat urzędu certyfikacji urządzenia.If you don't provide your own production certificates when you install and provision IoT Edge, the IoT Edge security manager automatically generates a device CA certificate. Ten certyfikat z podpisem własnym jest przeznaczony wyłącznie do celów deweloperskich i testowych, a nie do produkcji.This self-signed certificate is only meant for development and testing scenarios, not production. Ten certyfikat wygasa po 90 dniach.This certificate expires after 90 days.
  • IoT Edge Security Manager generuje również certyfikat urzędu certyfikacji obciążenia podpisany przez certyfikat urzędu certyfikacji urządzeniaThe IoT Edge security manager also generates a workload CA certificate signed by the device CA certificate

Aby uzyskać więcej informacji na temat funkcji różnych certyfikatów na urządzeniu IoT Edge, zobacz Opis sposobu Azure IoT Edge korzystania z certyfikatów.For more information about the function of the different certificates on an IoT Edge device, see Understand how Azure IoT Edge uses certificates.

Dla tych dwóch automatycznie generowanych certyfikatów istnieje możliwość ustawienia flagi auto_generated_ca_lifetime_days w pliku konfiguracji w celu skonfigurowania liczby dni okresu istnienia certyfikatów.For these two automatically generated certificates, you have the option of setting the auto_generated_ca_lifetime_days flag in the config file to configure the number of days for the lifetime of the certificates.

Uwaga

Istnieje trzeci certyfikat wygenerowany automatycznie, który zostanie utworzony przez program IoT Edge Security Manager, certyfikat serwera centrum IoT Edge.There is a third auto-generated certificate that the IoT Edge security manager creates, the IoT Edge hub server certificate. Ten certyfikat zawsze ma 90 dzień okresu istnienia, ale jest automatycznie odnawiany przed wygaśnięciem.This certificate always has a 90 day lifetime, but is automatically renewed before expiring. Wartość auto_generated_ca_lifetime_days nie ma wpływu na ten certyfikat.The auto_generated_ca_lifetime_days value doesn't affect this certificate.

Po upływie określonej liczby dni IoT Edge musi zostać ponownie uruchomiona w celu ponownego wygenerowania certyfikatu urzędu certyfikacji urządzenia.Upon expiry after the specified number of days, IoT Edge has to be restarted to regenerate the device CA certificate. Certyfikat urzędu certyfikacji urządzenia nie zostanie odnowiony automatycznie.The device CA certificate won't be renewed automatically.

  1. Aby skonfigurować wygaśnięcie certyfikatu do wartości innej niż domyślna 90 dni, należy dodać wartość w dniach do sekcji Certyfikaty w pliku konfiguracji.To configure the certificate expiration to something other than the default 90 days, add the value in days to the certificates section of the config file.

    certificates:
      device_ca_cert: "<ADD URI TO DEVICE CA CERTIFICATE HERE>"
      device_ca_pk: "<ADD URI TO DEVICE CA PRIVATE KEY HERE>"
      trusted_ca_certs: "<ADD URI TO TRUSTED CA CERTIFICATES HERE>"
      auto_generated_ca_lifetime_days: <value>
    

    Uwaga

    Obecnie ograniczenie w libiothsm uniemożliwia korzystanie z certyfikatów, które wygasną od 1 stycznia 2038.Currently, a limitation in libiothsm prevents the use of certificates that expire on or after January 1, 2038.

  2. Usuń zawartość hsm folderu, aby usunąć wszystkie wcześniej wygenerowane certyfikaty.Delete the contents of the hsm folder to remove any previously generated certificates.

    • Linux i IoT Edge dla systemu Linux w systemie Windows: /var/lib/iotedge/hsm/certs i /var/lib/iotedge/hsm/cert_keysLinux and IoT Edge for Linux on Windows: /var/lib/iotedge/hsm/certs and /var/lib/iotedge/hsm/cert_keys

    • Windows przy użyciu kontenerów systemu Windows: C:\ProgramData\iotedge\hsm\certs i C:\ProgramData\iotedge\hsm\cert_keysWindows using Windows containers: C:\ProgramData\iotedge\hsm\certs and C:\ProgramData\iotedge\hsm\cert_keys

  3. Uruchom ponownie usługę IoT Edge.Restart the IoT Edge service.

    • Linux i IoT Edge dla systemu Linux w systemie Windows:Linux and IoT Edge for Linux on Windows:
    sudo systemctl restart iotedge
    
    • System Windows korzystający z kontenerów systemu Windows:Windows using Windows containers:
    Restart-Service iotedge
    
  4. Potwierdź ustawienie okresu istnienia.Confirm the lifetime setting.

    • Linux i IoT Edge dla systemu Linux w systemie Windows:Linux and IoT Edge for Linux on Windows:
    sudo iotedge check --verbose
    
    • System Windows korzystający z kontenerów systemu Windows:Windows using Windows containers:
    iotedge check --verbose
    

    Sprawdź dane wyjściowe gotowości produkcyjnej: sprawdzanie certyfikatów , które wyświetla liczbę dni, po upływie których automatycznie Wygenerowano certyfikaty urzędu certyfikacji.Check the output of the production readiness: certificates check, which lists the number of days until the automatically generated device CA certificates expire.

Następne krokiNext steps

Zainstalowanie certyfikatów na urządzeniu IoT Edge jest czynnością wymaganą przed wdrożeniem rozwiązania w środowisku produkcyjnym.Installing certificates on an IoT Edge device is a necessary step before deploying your solution in production. Dowiedz się więcej o tym, jak przygotować się do wdrożenia rozwiązania IoT Edge w środowisku produkcyjnym.Learn more about how to Prepare to deploy your IoT Edge solution in production.