Partilhar via


Criar certificados de demonstração para testar as funcionalidades dos dispositivos IoT Edge

Aplica-se a:Marca de verificação do IoT Edge 1.5 IoT Edge 1.5

Importante

O IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS está em fim de vida útil a partir de 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

Os dispositivos IoT Edge precisam de certificados para comunicação segura entre o tempo de execução, os módulos e quaisquer dispositivos downstream. Se você não tiver uma autoridade de certificação para criar os certificados necessários, use certificados de demonstração para experimentar os recursos do IoT Edge em seu ambiente de teste. Este artigo explica os scripts de geração de certificados que o IoT Edge fornece para testes.

Aviso

Esses certificados expiram em 30 dias e você não deve usá-los em nenhum cenário de produção.

Crie certificados em qualquer máquina e, em seguida, copie-os para o seu dispositivo IoT Edge ou gere os certificados diretamente no dispositivo IoT Edge.

Pré-requisitos

Use uma máquina de desenvolvimento que tenha o Git instalado.

Baixar scripts de certificado de teste e configurar o diretório de trabalho

O repositório do IoT Edge no GitHub inclui scripts de geração de certificados que você pode usar para criar certificados de demonstração. Esta seção fornece instruções para preparar os scripts para serem executados em seu computador, seja no Windows ou Linux.

Para criar certificados de demonstração em um dispositivo Windows, instale o OpenSSL e, em seguida, clone os scripts de geração e configure-os para serem executados localmente no PowerShell.

Instale o OpenSSL

Instale o OpenSSL para Windows no dispositivo que você usa para gerar os certificados. Se o OpenSSL já estiver instalado, certifique-se de que openssl.exe está disponível na variável de ambiente PATH.

Você pode instalar o OpenSSL de diferentes maneiras:

  • Mais fácil: Baixe e instale quaisquer binários OpenSSL de terceiros, por exemplo, do OpenSSL no SourceForge. Adicione o caminho completo para openssl.exe à variável de ambiente PATH.

  • Recomendado: Faça o download do código-fonte OpenSSL e construa os binários no seu dispositivo, ou use vcpkg. As instruções a seguir usam vcpkg para baixar o código-fonte, compilar e instalar o OpenSSL em seu dispositivo Windows.

    1. Navegue até um diretório onde você deseja instalar o vcpkg. Siga as instruções para baixar e instalar o vcpkg.

    2. Depois que vcpkg estiver instalado, execute o seguinte comando em um prompt do PowerShell para instalar o pacote OpenSSL para Windows x64. A instalação normalmente leva cerca de 5 minutos para ser concluída.

      .\vcpkg install openssl:x64-windows
      
    3. Adicione <vcpkg path>\installed\x64-windows\tools\openssl à sua variável de ambiente PATH para que o arquivo openssl.exe esteja disponível para invocação.

Preparar scripts no PowerShell

O repositório git do Azure IoT Edge contém scripts que você pode usar para gerar certificados de teste. Nesta seção, você clona o repositório do IoT Edge e executa os scripts.

  1. Abra o PowerShell no modo de administrador.

  2. Clone o repositório git do IoT Edge, que tem scripts para gerar certificados de demonstração. Use o git clone comando ou baixe o ZIP.

    git clone https://github.com/Azure/iotedge.git
    
  3. Crie um diretório e copie os scripts de certificado lá. Todos os arquivos de certificado e chave são criados neste diretório.

    mkdir wrkdir
    cd .\wrkdir\
    cp ..\iotedge\tools\CACertificates\*.cnf .
    cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    Se você baixou o repositório como um ZIP, o nome da pasta é iotedge-master e o resto do caminho é o mesmo.

  4. Defina a política de execução do PowerShell para executar os scripts.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Importe as funções usadas pelos scripts para o namespace global do PowerShell.

    . .\ca-certs.ps1
    

    A janela do PowerShell mostra um aviso de que os certificados gerados por esse script são apenas para teste e não devem ser usados em cenários de produção.

  6. Verifique se o OpenSSL foi instalado corretamente e certifique-se de que não haverá colisões de nomes com certificados existentes. Se houver problemas, a saída do script deve descrever como corrigi-los em seu sistema.

    Test-CACertsPrerequisites
    

Criar certificado de autoridade de certificação raiz

Execute este script para gerar um certificado de autoridade de certificação raiz. Você precisa desse certificado para cada etapa deste artigo.

Use o certificado de autoridade de certificação raiz para criar outros certificados de demonstração para testar um cenário do IoT Edge. Você pode usar o mesmo certificado de autoridade de certificação raiz para criar certificados de demonstração para vários dispositivos IoT Edge ou downstream.

Se você já tiver um certificado de autoridade de certificação raiz em sua pasta de trabalho, não crie um novo. A criação de um novo certificado de autoridade de certificação raiz substitui o antigo e todos os certificados downstream criados a partir do certificado antigo param de funcionar. Se você precisar de vários certificados de autoridade de certificação raiz, gerencie-os em pastas separadas.

  1. Vá para o diretório de wrkdir trabalho onde você coloca os scripts de geração de certificado.

  2. Crie o certificado de autoridade de certificação raiz e assine um certificado intermediário. Os certificados são colocados no seu diretório de trabalho.

    New-CACertsCertChain rsa
    

    Este script cria vários arquivos de certificado e chave. Quando os artigos solicitarem o certificado de autoridade de certificação raiz, use este ficheiro:

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

Você precisa desse certificado antes de criar mais certificados para seus dispositivos IoT Edge e dispositivos downstream, conforme descrito nas próximas seções.

Criar certificado de identidade para o dispositivo IoT Edge

Os certificados de identidade de dispositivo IoT Edge são usados para provisionar dispositivos IoT Edge se você optar por usar a autenticação de certificado X.509. Se você usar chave simétrica para autenticação no Hub IoT ou DPS, esses certificados não serão necessários e você poderá ignorar esta seção.

Esses certificados funcionam se você usar o provisionamento manual ou o provisionamento automático por meio do DPS (Serviço de Provisionamento de Dispositivo) do Hub IoT do Azure.

Os certificados de identidade do dispositivo vão na seção Provisionamento do arquivo de configuração no dispositivo IoT Edge.

  1. Vá para o diretório wrkdir de trabalho que tem os scripts de geração de certificado e o certificado CA raiz.

  2. Crie o certificado de identidade do dispositivo IoT Edge e a chave privada com o seguinte comando:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    O nome que você insere para este comando é o ID do dispositivo IoT Edge no Hub IoT.

  3. O novo comando de identidade do dispositivo cria vários arquivos de certificado e chave:

    Tipo Ficheiro Descrição
    Certificado de identidade do dispositivo certs\iot-edge-device-identity-<device-id>.cert.pem Assinado pelo certificado intermediário gerado anteriormente. Contém apenas o certificado de identidade. Especifique no arquivo de configuração para registro individual do DPS ou provisionamento do Hub IoT.
    Certificado de cadeia completa certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem Contém a cadeia de certificados completa, incluindo o certificado intermediário. Especifique no arquivo de configuração para o IoT Edge apresentar ao DPS para provisionamento de registro de grupo.
    Chave privada private\iot-edge-device-identity-<device-id>.key.pem Chave privada associada ao certificado de identidade do dispositivo. Deve ser especificado no arquivo de configuração, desde que você esteja usando algum tipo de autenticação de certificado (impressão digital ou CA) para DPS ou Hub IoT.

Criar certificados de CA de Borda

Você precisa desses certificados para cenários de gateway porque o certificado CA Edge permite que o dispositivo IoT Edge verifique sua identidade para dispositivos a jusante. Ignore esta seção se não estiver conectando nenhum dispositivo downstream ao IoT Edge.

O certificado Edge CA também cria certificados para módulos em execução no dispositivo, mas o IoT Edge runtime pode criar certificados temporários se o Edge CA não estiver preparado. Coloque certificados de CA do Edge na seção CA do Edge no arquivo config.toml do dispositivo IoT Edge. Para saber mais, consulte Entender como o Azure IoT Edge usa certificados.

  1. Navegue até o diretório wrkdir de trabalho que contém os scripts de geração de certificado e o certificado de autoridade de certificação raiz.

  2. Crie o certificado da autoridade de certificação do IoT Edge e a chave privada com o seguinte comando. Insira um nome para o certificado da autoridade de certificação. Não use o mesmo nome que o parâmetro hostname no arquivo de configuração ou o ID do dispositivo no Hub IoT para o comando New-CACertsEdgeDevice .

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Este comando cria vários arquivos de certificado e chave. Copie o seguinte certificado e par de chaves para o dispositivo IoT Edge e faça referência a eles no arquivo de configuração:

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

Criar certificados de dispositivo downstream

Esses certificados são necessários para configurar um dispositivo IoT downstream para um cenário de gateway e desejam usar a autenticação X.509 com o Hub IoT ou DPS. Se você quiser usar a autenticação de chave simétrica, não precisará criar certificados para o dispositivo downstream e pode ignorar esta seção.

Há duas maneiras de autenticar um dispositivo IoT usando certificados X.509: usando certificados autoassinados ou usando certificados assinados pela autoridade de certificação (CA).

  • Para autenticação autoassinada X.509, às vezes chamada de autenticação de impressão digital, você precisa criar novos certificados para colocar em seu dispositivo IoT. Esses certificados têm uma impressão digital que você compartilha com o Hub IoT para autenticação.
  • Para autenticação assinada pela autoridade de certificação (CA) X.509, você precisa de um certificado de CA raiz registrado no Hub IoT ou DPS que você usa para assinar certificados para seu dispositivo IoT. Qualquer dispositivo que use um certificado emitido pelo certificado de autoridade de certificação raiz ou qualquer um de seus certificados intermediários pode autenticar, desde que a cadeia completa seja apresentada pelo dispositivo.

Os scripts de geração de certificados podem ajudá-lo a criar certificados de demonstração para testar qualquer um desses cenários de autenticação.

Certificados autoassinados

Ao autenticar um dispositivo IoT com certificados autoassinados, você precisa criar certificados de dispositivo com base no certificado de autoridade de certificação raiz para sua solução. Em seguida, você recupera uma "impressão digital" hexadecimal dos certificados para fornecer ao Hub IoT. Seu dispositivo IoT também precisa de uma cópia de seus certificados de dispositivo para que possa se autenticar com o Hub IoT.

  1. Navegue até o diretório wrkdir de trabalho que contém os scripts de geração de certificado e o certificado de autoridade de certificação raiz.

  2. Crie dois certificados (primário e secundário) para o dispositivo downstream. Uma convenção de nomenclatura fácil de usar é criar os certificados com o nome do dispositivo IoT e, em seguida, o rótulo primário ou secundário. Por exemplo:

    New-CACertsDevice "<device ID>-primary"
    New-CACertsDevice "<device ID>-secondary"
    

    Este comando de script cria vários arquivos de certificado e chave. Os seguintes pares de certificados e chaves precisam ser copiados para o dispositivo IoT downstream e referenciados nos aplicativos que se conectam ao Hub IoT:

    • 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. Recupere a impressão digital SHA1 (chamada de impressão digital em contextos do Hub IoT) de cada certificado. A impressão digital é uma cadeia de caracteres hexadecimais de 40. Use o seguinte comando openssl para visualizar o certificado e localizar a impressão digital:

    Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).Thumbprint
    

    Execute este comando duas vezes, uma para o certificado primário e outra para o certificado secundário. Você fornece impressões digitais para ambos os certificados quando registra um novo dispositivo IoT usando certificados X.509 autoassinados.

Certificados assinados por CA

Ao autenticar um dispositivo IoT com certificados assinados por CA, você precisa carregar o certificado de CA raiz da sua solução para o Hub IoT. Use o mesmo certificado de autoridade de certificação raiz para criar certificados de dispositivo para colocar em seu dispositivo IoT para que ele possa se autenticar com o Hub IoT.

Os certificados nesta seção são para as etapas da série de tutoriais de certificados do Hub IoT X.509. Consulte Noções básicas sobre criptografia de chave pública e infraestrutura de chave pública X.509 para obter a introdução desta série.

  1. Carregue o arquivo de certificado de autoridade de certificação raiz do diretório de trabalho certs\azure-iot-test-only.root.ca.cert.pempara o hub IoT.

  2. Se a verificação automática não estiver selecionada, use o código fornecido no portal do Azure para verificar se você possui esse certificado de autoridade de certificação raiz.

    New-CACertsVerificationCert "<verification code>"
    
  3. Crie uma cadeia de certificados para o seu dispositivo a jusante. Use o mesmo ID de dispositivo com o qual o dispositivo está registrado no Hub IoT.

    New-CACertsDevice "<device id>"
    

    Este comando de script cria vários arquivos de certificado e chave. Os seguintes pares de certificados e chaves precisam ser copiados para o dispositivo IoT downstream e referenciados nos aplicativos que se conectam ao Hub IoT:

    • 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