Compartilhar via


Criar e provisionar dispositivos IoT Edge em escala no Windows usando certificados X.509

Aplica-se a: ícone sim IoT Edge 1.1

Importante

IoT Edge 1.1 a data de término do suporte foi 13 de dezembro de 2022. Confira o Ciclo de Vida do Produto da Microsoft para obter informações sobre o suporte deste produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Atualizar o IoT Edge.

Este artigo fornece instruções de ponta a ponta para o provisionamento automático de um ou mais dispositivos do Windows IoT Edge usando certificados X.509. Você pode provisionar automaticamente dispositivos do Azure IoT Edge com o serviço de provisionamento de dispositivos no Hub IoT do Azure (DPS em IoT). Se você não estiver familiarizado com o processo de provisionamento automático, reveja a visão geral de provisionamento antes de continuar.

Observação

O Azure IoT Edge com contêineres do Windows não terá suporte a partir da versão 1.2 do Azure IoT Edge.

Considere o uso do novo método para executar o IoT Edge em dispositivos Windows, Azure IoT Edge para Linux no Windows.

Se você quiser usar o Azure IoT Edge para Linux no Windows, poderá seguir as etapas no guia de instruções equivalente.

As tarefas são as seguintes:

  1. Gerar certificados e chaves.
  2. Crie um registro individual para um único dispositivo ou um registro de grupo para um conjunto de dispositivos.
  3. Instalar o runtime do IoT Edge e registrar o dispositivo com Hub IoT.

Usar certificados X.509 como um mecanismo de atestado é uma maneira excelente de escalar a produção e simplificar o provisionamento do dispositivo. Normalmente, os certificados X.509 são organizados em uma cadeia de certificados de confiança. Começando com um certificado raiz confiável ou autoassinado, cada certificado na cadeia assina o próximo certificado inferior. Esse padrão cria uma relação de confiança representante desde o certificado raiz até cada certificado intermediário até o certificado de dispositivo de downstream final instalado em um dispositivo.

Pré-requisitos

Recursos de nuvem

Requisitos do dispositivo

Um dispositivo físico ou virtual do Windows para ser o dispositivo IoT Edge.

Gerar certificados de identidade do dispositivo

O certificado de identidade do dispositivo é um certificado de dispositivo downstream que se conecta por meio de uma cadeia de confiança de certificados ao certificado de CA (autoridade de certificação) X.509 superior. O certificado de identidade do dispositivo deve ter um CN (nome comum) definido como a identidade do dispositivo que você deseja que o dispositivo tenha no hub IoT.

Os certificados de identidade do dispositivo são usados apenas para provisionar o dispositivo do IoT Edge e autenticar o dispositivo com o Hub IoT do Azure. Eles não são certificados de assinatura, ao contrário dos certificados de CA apresentados pelo dispositivo IoT Edge aos módulos ou dispositivos downstream para verificação. Para saber mais, confira Detalhes do uso do certificado do Azure IoT Edge.

Depois de criar o certificado de identidade do dispositivo, você deve ter dois arquivos: um arquivo .cer ou .pem que contém a parte pública do certificado e um arquivo .cer ou .pem com a chave privada do certificado. Se você planeja usar o registro de grupo no DPS, também precisa da parte pública de um certificado de AC raiz ou intermediária na mesma cadeia de certificados de confiança.

Você precisa dos seguintes arquivos para configurar o provisionamento automático com X.509:

  • O certificado de identidade do dispositivo e seu certificado de chave privada. O certificado de identidade do dispositivo será carregado no DPS se você criar um registro individual. A chave privada é passada para o runtime do IoT Edge.
  • Um certificado de cadeia completo, que deve ter pelo menos a identidade do dispositivo e os certificados intermediários nele. O certificado de cadeia completo é passado para o runtime do IoT Edge.
  • Um certificado de AC raiz ou intermediária da cadeia de certificados de confiança. Esse certificado será carregado no DPS se você criar um registro de grupo.

Observação

No momento, uma limitação no libiothsm impede o uso de certificados que expiram em 1º de janeiro de 2038.

Usar certificados de teste (opcional)

Se você não tem uma autoridade de certificação disponível para criar certificados de identidade e quer experimentar esse cenário, o repositório Git do Azure IoT Edge contém scripts que você pode usar para gerar certificados de teste. Esses certificados foram criados apenas para o teste de desenvolvimento e não devem ser usados na produção.

Para criar certificados de teste, siga as etapas em Criar certificados de demonstração para testar recursos do dispositivo do IoT Edge. Conclua as duas seções necessárias para configurar os scripts de geração de certificado e para criar um certificado de AC raiz. Em seguida, siga as etapas para criar um certificado de identidade do dispositivo. Quando tiver terminado, você deverá ter a cadeia de certificados e o par de chaves a seguir:

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

Você precisa desses dois certificados no dispositivo do IoT Edge. Se você for usar o registro individual no DPS, carregará o arquivo .cert.pem. Se você for usar o registro de grupo no DPS, também precisará carregar um certificado de AC raiz ou intermediária na mesma cadeia de certificados de confiança. Se você estiver usando certificados de demonstração, use o certificado <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem para registro de grupo.

Criar um registro de DPS

Use os certificados e chaves gerados para criar um registro no DPS de um ou mais dispositivos Azure IoT Edge.

Se você quiser provisionar um único dispositivo IoT Edge, crie um registro individual. Se você precisar de vários dispositivos provisionados, siga as etapas para criar um registro de grupo do DPS.

Ao criar uma inscrição no DPS, tem a oportunidade de declarar um Estado inicial do dispositivo duplo. No dispositivo gêmeo, você pode definir tags para agrupar dispositivos por qualquer métrica que precisar em sua solução, como região, ambiente, local ou tipo de dispositivo. Essas marcas são usadas para criar implantações automáticas.

Para saber mais sobre registros no serviço de provisionamento de dispositivos, confira Como gerenciar registros de dispositivo.

Criar um registro individual de DPS

Os registros individuais usam a parte pública do certificado de identidade de um dispositivo e correspondem ao certificado no dispositivo.

Dica

As etapas neste artigo são para o portal do Microsoft Azure, mas também é possível criar registros individuais usando a CLI do Azure. Para obter mais informações, confira Registro az iot dps. Como parte do comando da CLI, use o sinalizador habilitado para o Edge para especificar que o registro é para um dispositivo do IoT Edge.

  1. No portal do Azure, navegue até sua instância do serviço de provisionamento de dispositivos no Hub IoT.

  2. Em Configurações, selecione Gerenciar registros.

  3. Selecione adicionar registro individual, em seguida, conclua as seguintes etapas para configurar o registro:

    • Mecanismo: selecione X.509.

    • Arquivo .pem ou .cer do certificado primário: carregue o arquivo público do certificado de identidade do dispositivo. Se você usou os scripts para gerar um certificado de teste, escolha o seguinte arquivo:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • ID de Dispositivo do Hub IoT: forneça uma ID para o seu dispositivo, se desejar. Você pode usar IDs de dispositivo para um dispositivo individual para a implantação do módulo de destino. Se você não fornecer uma ID de dispositivo, o CN (nome comum) no certificado X.509 será usado.

    • Dispositivo do IoT Edge: selecione True para declarar que o registro é para um dispositivo do IoT Edge.

    • Selecione os hubs IoT aos quais este dispositivo pode ser atribuído: escolha o Hub IoT vinculado ao qual você deseja conectar o dispositivo. Você pode escolher vários hubs e o dispositivo será atribuído a um deles de acordo com a política de alocação selecionada.

    • Estado inicial do dispositivo gêmeo: adicione um valor de marca a ser adicionado ao dispositivo gêmeo se desejar. Você pode usar marcas para grupos de dispositivos de destino para a implantação automática. Por exemplo:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. Selecione Salvar.

Em Gerenciar Registros, você pode ver a ID do Registro que acabou de criar. Anote-a, pois ela pode ser usada quando você provisiona seu dispositivo.

Agora que existe um registro para esse dispositivo, o runtime do IoT Edge pode provisionar automaticamente o dispositivo durante a instalação.

Instalar o Edge IoT

Nesta seção, você preparará a VM ou o dispositivo físico Windows para o IoT Edge. Em seguida, você instalará o IoT Edge.

O Azure IoT Edge depende de um runtime de contêiner compatível com OCI. O Moby, um mecanismo baseado em Moby, está incluído no script de instalação, o que significa que não há etapas adicionais para instalar o mecanismo.

Para instalar o runtime do Azure IoT Edge:

  1. Execute o PowerShell como administrador.

    Use uma sessão AMD64 do PowerShell, não o PowerShell(x86). Para saber qual tipo de sessão você está usando, execute o seguinte comando:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Execute o comando Deploy-IoTEdge, que executa as seguintes tarefas:

    • Verifica se o computador Windows está em uma versão compatível
    • Ativa o recurso de contêineres
    • Baixa o mecanismo Moby e o runtime do IoT Edge
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Reinicie o dispositivo, se solicitado.

Ao instalar o IoT Edge em um dispositivo, é possível usar parâmetros adicionais para modificar o processo, incluindo:

  • Tráfego direto para passar por um servidor proxy
  • Apontar o instalador para um diretório local para instalação offline

Para obter mais informações sobre esses parâmetros adicionais, consulte Scripts do PowerShell para IoT Edge com contêineres do Windows.

Provisionar o dispositivo com a identidade de nuvem dele

Depois que o runtime for instalado no seu dispositivo, configure-o com as informações que ele usa para se conectar ao serviço de provisionamento de dispositivos e ao Hub IoT.

Prepare as seguintes informações:

  • O valor do Escopo da ID do DPS. É possível recuperar esse valor da página de visão geral da instância do DPS no portal do Azure.
  • O arquivo de cadeia de certificados de identidade do dispositivo no dispositivo.
  • A chave de identidade do dispositivo no dispositivo.
  1. Abra uma janela do PowerShell no modo de administrador. Use a sessão AMD64 do PowerShell ao instalar o IoT Edge, não o PowerShell (x86).

  2. O comando Initialize-IoTEdge configura o runtime do IoT Edge em seu computador. O comando usa como padrão o provisionamento manual com contêineres do Windows, portanto, use o sinalizador -DpsX509 para utilizar o provisionamento automático com a autenticação do certificado X.509.

    Substitua os valores de espaço reservado para scope_id, identity cert chain path e identity key path pelos valores apropriados de sua instância de DPS e os caminhos de arquivo em seu dispositivo.

    Adicione o parâmetro -RegistrationId paste_registration_id_here se quiser definir a ID do dispositivo como algo diferente do nome CN do certificado de identidade.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -DpsX509 -ScopeId paste_scope_id_here -X509IdentityCertificate paste_identity_cert_chain_path_here -X509IdentityPrivateKey paste_identity_key_path_here
    

    Dica

    O arquivo de configuração armazena suas informações de certificado e chave como URIs de arquivo. No entanto, o comando Initialize-IoTEdge trata dessa etapa de formatação para você, para que possa fornecer o caminho absoluto para os arquivos de certificado e chave no seu dispositivo.

Verifique se a instalação bem-sucedida

Se o runtime foi iniciado com êxito, você pode entrar em seu Hub IoT e iniciar a implantação de módulos do IoT Edge em seu dispositivo.

Você pode verificar se o registro individual criado no serviço de provisionamento de dispositivos foi usado. Navegue até a sua instância do serviço de provisionamento de dispositivos do portal do Azure. Abra os detalhes de registro para o registro individual que você criou. Observe que o status do registro é atribuído e a ID do dispositivo está listada.

Use os seguintes comandos em seu dispositivo para verificar se o IoT Edge foi instalado e iniciado com êxito.

Verifique o status do serviço do IoT Edge.

Get-Service iotedge

Examine os logs de serviço.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

Módulos de execução da lista.

iotedge list

Próximas etapas

O processo de registro do serviço de provisionamento de dispositivo permite definir a ID do dispositivo e as marcas do dispositivo gêmeo ao mesmo tempo, como provisionar o novo dispositivo. Você pode usar esses valores para dispositivos individuais ou grupos de dispositivos usando o gerenciamento automático de dispositivo de destino. Saiba como Implantar e monitorar os módulos de IoT Edge em escala usando o portal do Azure ou usando a CLI do Azure.