Hantera certifikat på en IoT Edge enhetManage certificates on an IoT Edge device

Gäller för:  Ja-ikonen IoT Edge 1,1 andra versioner: IoT Edge 1,2Applies to: yes icon IoT Edge 1.1 Other versions: IoT Edge 1.2

Gäller för:  Ja-ikonen IoT Edge 1,2 andra versioner: IoT Edge 1,1Applies to: yes icon IoT Edge 1.2 Other versions: IoT Edge 1.1

Alla IoT Edge-enheter använder certifikat för att skapa säkra anslutningar mellan körningen och de moduler som körs på enheten.All IoT Edge devices use certificates to create secure connections between the runtime and any modules running on the device. IoT Edge enheter som fungerar som gateways använder samma certifikat för att ansluta till deras underordnade enheter också.IoT Edge devices functioning as gateways use these same certificates to connect to their downstream devices, too.

Installera produktionscertifikatInstall production certificates

När du först installerar IoT Edge och etablerar enheten, konfigureras enheten med tillfälliga certifikat så att du kan testa tjänsten.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. Dessa tillfälliga certifikat upphör att gälla om 90 dagar eller kan återställas genom att starta om datorn.These temporary certificates expire in 90 days, or can be reset by restarting your machine. När du har flyttat till ett produktions scenario, eller om du vill skapa en gateway-enhet, måste du ange dina egna certifikat.Once you move into a production scenario, or you want to create a gateway device, you need to provide your own certificates. Den här artikeln visar stegen för att installera certifikat på dina IoT Edge enheter.This article demonstrates the steps to install certificates on your IoT Edge devices.

Läs mer om de olika typerna av certifikat och deras roller i förstå hur Azure IoT Edge använder certifikat.To learn more about the different types of certificates and their roles, see Understand how Azure IoT Edge uses certificates.

Anteckning

Termen "rot certifikat utfärdare" som används i den här artikeln refererar till det offentliga utfärdade certifikat kedjan för din IoT-lösning.The term "root CA" used throughout this article refers to the topmost authority public certificate of the certificate chain for your IoT solution. Du behöver inte använda certifikat roten för en insyndikerad certifikat utfärdare eller roten för organisationens certifikat utfärdare.You do not need to use the certificate root of a syndicated certificate authority, or the root of your organization's certificate authority. I många fall är det faktiskt ett offentligt certifikat för certifikat utfärdare.In many cases, it is actually an intermediate CA public certificate.

FörutsättningarPrerequisites

  • En IoT Edge enhet.An IoT Edge device.

    Om du inte har konfigurerat en IoT Edge enhet kan du skapa en på en virtuell Azure-dator.If you don't have an IoT Edge device set up, you can create one in an Azure virtual machine. Följ stegen i en av snabb starts artiklarna för att skapa en virtuell Linux-enhet eller skapa en virtuell Windows-enhet.Follow the steps in one of the quickstart articles to Create a virtual Linux device or Create a virtual Windows device.

  • Ha ett certifikat från en rot certifikat utfärdare (CA), antingen självsignerat eller köpt från en betrodd kommersiell certifikat utfärdare som Baltimore, VeriSign, DigiCert eller 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.

    Om du inte har en rot certifikat utfärdare än, men vill testa IoT Edge funktioner som kräver produktions certifikat (till exempel Gateway-scenarier) kan du skapa demonstrations certifikat för att testa IoT Edge enhets funktioner.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.

Skapa produktions certifikatCreate production certificates

Du bör använda din egen certifikat utfärdare för att skapa följande filer:You should use your own certificate authority to create the following files:

  • RotcertifikatutfärdareRoot CA
  • Enhetens CA-certifikatDevice CA certificate
  • Privat nyckel för enhets certifikat utfärdareDevice CA private key

I den här artikeln refererar vi till som rot certifikat utfärdare är inte den översta certifikat utfärdaren för en organisation.In this article, what we refer to as the root CA is not the topmost certificate authority for an organization. Det är den översta certifikat utfärdaren för IoT Edge scenariot, som IoT Edge Hub-modulen, användarattribut och eventuella underordnade enheter använder för att upprätta förtroende mellan varandra.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.

Anteckning

För närvarande förhindrar en begränsning i libiothsm användningen av certifikat som upphör att gälla den 1 januari 2038.Currently, a limitation in libiothsm prevents the use of certificates that expire on or after January 1, 2038.

Om du vill se ett exempel på dessa certifikat granskar du skripten som skapar demo certifikat i Hantera test CA-certifikat för exempel och självstudier.To see an example of these certificates, review the scripts that create demo certificates in Managing test CA certificates for samples and tutorials.

Installera certifikat på enhetenInstall certificates on the device

Installera certifikat kedjan på den IoT Edge enheten och konfigurera IoT Edge runtime så att den refererar till de nya certifikaten.Install your certificate chain on the IoT Edge device and configure the IoT Edge runtime to reference the new certificates.

Kopiera de tre certifikat-och nyckelfilerna till din IoT Edge-enhet.Copy the three certificate and key files onto your IoT Edge device. Du kan använda en tjänst som Azure Key Vault eller en funktion som Secure Copy Protocol för att flytta certifikatfiler.You can use a service like Azure Key Vault or a function like Secure copy protocol to move the certificate files. Om du har genererat certifikaten på själva enheten för IoT Edge kan du hoppa över det här steget och använda sökvägen till arbets katalogen.If you generated the certificates on the IoT Edge device itself, you can skip this step and use the path to the working directory.

Om du använder IoT Edge för Linux i Windows måste du använda SSH-nyckeln som finns i Azure IoT Edge- id_rsa filen för att autentisera fil överföringar mellan värd-OS och den virtuella Linux-datorn.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. Du kan göra en autentiserad SCP med följande kommando: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>

Anteckning

Den virtuella Linux-datorns IP-adress kan frågas via Get-EflowVmAddr kommandot.The Linux virtual machine's IP address can be queried via the Get-EflowVmAddr command.

Om du använde exempel skripten för att skapa demo certifikat, kopierar du följande filer till din IoT-Edge-enhet:If you used the sample scripts to Create demo certificates, copy the following files onto your IoT-Edge device:

  • Enhetens CA-certifikat: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pemDevice CA certificate: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pem
  • Privat nyckel för enhets certifikat utfärdare: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pemDevice CA private key: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pem
  • Rot certifikat utfärdare: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pemRoot CA: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem
  1. Öppna konfigurations filen för IoT Edge Security daemon.Open the IoT Edge security daemon config file.

    • Linux och IoT Edge för Linux i Windows: /etc/iotedge/config.yamlLinux and IoT Edge for Linux on Windows: /etc/iotedge/config.yaml

    • Windows med Windows-behållare: C:\ProgramData\iotedge\config.yamlWindows using Windows containers: C:\ProgramData\iotedge\config.yaml

  2. Ange certifikat egenskaperna i config. yaml till fil-URI-sökvägen till certifikatet och nyckelfilen på den IoT Edge enheten.Set the certificate properties in config.yaml to the file URI path to the certificate and key files on the IoT Edge device. Ta bort tecknen innan du tar bort dem från # certifikat egenskaperna för att ta bort kommentarer till de fyra raderna.Remove the # character before the certificate properties to uncomment the four lines. Se till att det inte finns några föregående blank steg i raden certifikat: rad och att kapslade objekt är indragna med två blank steg.Make sure the certificates: line has no preceding whitespace and that nested items are indented by two spaces. Exempel:For example:

    • Linux och IoT Edge för Linux i 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>"
      
    • Windows med Windows-behållare: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. På Linux-enheter ser du till att användar iotedge har Läs behörighet för den katalog som innehåller certifikaten.On Linux devices, make sure that the user iotedge has read permissions for the directory holding the certificates.

  4. Om du har använt andra certifikat för IoT Edge på enheten tidigare tar du bort filerna i följande två kataloger innan du startar eller startar om IoT Edge: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 och IoT Edge för Linux i Windows: /var/lib/iotedge/hsm/certs och /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 med Windows-behållare: C:\ProgramData\iotedge\hsm\certs och C:\ProgramData\iotedge\hsm\cert_keysWindows using Windows containers: C:\ProgramData\iotedge\hsm\certs and C:\ProgramData\iotedge\hsm\cert_keys

  1. Öppna konfigurations filen för IoT Edge Security daemon: /etc/aziot/config.tomlOpen the IoT Edge security daemon config file: /etc/aziot/config.toml

  2. Hitta trust_bundle_cert parametern i början av filen.Find the trust_bundle_cert parameter at the beginning of the file. Ta bort kommentaren till den här raden och ange filens URI till rot certifikat utfärdarens certifikat på enheten.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. Hitta [edge_ca] avsnittet i filen config. toml.Find the [edge_ca] section in the config.toml file. Ta bort kommentarer till raderna i det här avsnittet och ange fil-URI-sökvägar för certifikatet och nyckelfilen på den IoT Edge enheten.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. Se till att användar iotedge har Läs behörighet för den katalog som innehåller certifikaten.Make sure that the user iotedge has read permissions for the directory holding the certificates.

  5. Om du har använt andra certifikat för IoT Edge på enheten tidigare tar du bort filerna i följande två kataloger innan du startar eller startar om IoT Edge: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

Anpassa certifikatets livstidCustomize certificate lifetime

IoT Edge automatiskt genererar certifikat på enheten i flera fall, inklusive:IoT Edge automatically generates certificates on the device in several cases, including:

  • Om du inte anger dina egna produktions certifikat när du installerar och etablerar IoT Edge, genererar IoT Edge Security Manager automatiskt ett ca-certifikat för enhet.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. Detta självsignerade certifikat är endast avsett för utvecklings-och testnings scenarier, inte produktion.This self-signed certificate is only meant for development and testing scenarios, not production. Det här certifikatet upphör att gälla efter 90 dagar.This certificate expires after 90 days.
  • IoT Edge Security Manager genererar också ett ca-certifikat för arbets belastning signerat av ENHETens CA-certifikatThe IoT Edge security manager also generates a workload CA certificate signed by the device CA certificate

Mer information om funktionen för de olika certifikaten på en IoT Edge-enhet finns i förstå hur Azure IoT Edge använder certifikat.For more information about the function of the different certificates on an IoT Edge device, see Understand how Azure IoT Edge uses certificates.

För dessa två automatiskt genererade certifikat kan du välja att ställa in auto_generated_ca_lifetime_days -flaggan i konfigurations filen för att konfigurera antalet dagar för certifikatens livs längd.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.

Anteckning

Det finns ett tredje automatiskt genererat certifikat som IoT Edge Security Manager skapar, IoT Edge Hub-servercertifikat.There is a third auto-generated certificate that the IoT Edge security manager creates, the IoT Edge hub server certificate. Det här certifikatet har alltid en livs längd på 90 dagar, men förnyas automatiskt innan det upphör att gälla.This certificate always has a 90 day lifetime, but is automatically renewed before expiring. Auto_generated_ca_lifetime_days -värdet påverkar inte det här certifikatet.The auto_generated_ca_lifetime_days value doesn't affect this certificate.

När det angivna antalet dagar har löpt ut måste IoT Edge startas om för att återskapa enhetens CA-certifikat.Upon expiry after the specified number of days, IoT Edge has to be restarted to regenerate the device CA certificate. Enhetens CA-certifikat förnyas inte automatiskt.The device CA certificate won't be renewed automatically.

  1. Om du vill konfigurera certifikatets giltighets tid till något annat än standardvärdet 90 dagar lägger du till värdet i dagar i avsnittet certifikat i konfigurations filen.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>
    

    Anteckning

    För närvarande förhindrar en begränsning i libiothsm användningen av certifikat som upphör att gälla den 1 januari 2038.Currently, a limitation in libiothsm prevents the use of certificates that expire on or after January 1, 2038.

  2. Ta bort innehållet i hsm mappen för att ta bort eventuella tidigare genererade certifikat.Delete the contents of the hsm folder to remove any previously generated certificates.

    • Linux och IoT Edge för Linux i Windows: /var/lib/iotedge/hsm/certs och /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 med Windows-behållare: C:\ProgramData\iotedge\hsm\certs och C:\ProgramData\iotedge\hsm\cert_keysWindows using Windows containers: C:\ProgramData\iotedge\hsm\certs and C:\ProgramData\iotedge\hsm\cert_keys

  3. Starta om tjänsten IoT Edge.Restart the IoT Edge service.

    • Linux och IoT Edge för Linux i Windows:Linux and IoT Edge for Linux on Windows:
    sudo systemctl restart iotedge
    
    • Windows med Windows-behållare:Windows using Windows containers:
    Restart-Service iotedge
    
  4. Bekräfta livs längds inställningen.Confirm the lifetime setting.

    • Linux och IoT Edge för Linux i Windows:Linux and IoT Edge for Linux on Windows:
    sudo iotedge check --verbose
    
    • Windows med Windows-behållare:Windows using Windows containers:
    iotedge check --verbose
    

    Kontrol lera utdata från produktions beredskap: certifikat kontroll, som visar antalet dagar tills de automatiskt genererade ENHETens CA-certifikat upphör att gälla.Check the output of the production readiness: certificates check, which lists the number of days until the automatically generated device CA certificates expire.

Nästa stegNext steps

Att installera certifikat på en IoT Edge enhet är ett nödvändigt steg innan du distribuerar din lösning i produktionen.Installing certificates on an IoT Edge device is a necessary step before deploying your solution in production. Lär dig mer om hur du förbereder för att distribuera IoT Edge-lösningen i produktionen.Learn more about how to Prepare to deploy your IoT Edge solution in production.