Compartilhar via


Criar certificados de demonstração para testar recursos do dispositivo do IoT Edge

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

Importante

O IoT Edge 1.5 LTS é a versão com suporte. O IoT Edge 1.4 LTS atingirá o fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Os dispositivos do IoT Edge precisam de certificados para comunicação segura entre o runtime, os módulos e todos os 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 certificado que o IoT Edge fornece para teste.

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 computador e copie-os para seu dispositivo IoT Edge ou gere os certificados diretamente no dispositivo IoT Edge.

Pré-requisitos

Use um computador de desenvolvimento que tenha o Git instalado.

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

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

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

Instalar o OpenSSL

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

Você pode instalar o OpenSSL de diferentes maneiras:

  • Fácil: Faça o download e instale todos os binários do OpenSSL de terceiros, por exemplo, OpenSSL no SourceForge. Adicione o caminho completo para openssl.exe à variável de ambiente PATH.

  • Recomendado: Baixe o código-fonte OpenSSL e crie os binários em 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 para um diretório onde você deseja instalar vcpkg. Siga as instruções para fazer o download e instalar o vcpkg.

    2. Quando o vcpkg estiver instalado, em um prompt do PowerShell, execute o seguinte comando para instalar o pacote OpenSSL para Windows x64. Normalmente, a instalação leva cerca de 5 minutos para concluir.

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

Preparar scripts no PowerShell

O repositório do Git do dispositivo 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 comando git clone ou faça o download do 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 será iotedge-master e o restante do caminho será 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 não haver colisões de nome com certificados existentes. Se houver problemas, o script deve descrever como corrigi-los em seu sistema.

    Test-CACertsPrerequisites
    

Criar um certificado de AC raiz

Execute o script para gerar um certificado de CA raiz. Você precisa desse certificado para cada etapa neste artigo.

Use o certificado de CA raiz para criar outros certificados de teste para testar um cenário de IoT Edge. Você pode usar o mesmo certificado de autoridade de certificação raiz para criar certificados para demonstração em vários dispositivos IoT Edge ou em dispositivos 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 AC raiz substitui o antigo e todos os certificados downstream criados com base no certificado antigo param de funcionar. Se você precisar de mais de um certificado raiz da Autoridade Certificadora, gerencie-os em pastas separadas.

  1. Vá para o diretório de wrkdir trabalho no qual 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 em seu diretório de trabalho.

    New-CACertsCertChain rsa
    

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

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

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

Criar certificado de identidade para o dispositivo do IoT Edge

Certificados de identidade do 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 a chave simétrica para autenticar no Hub IoT ou DPS, esses certificados não serão necessários e você pode ignorar esta seção.

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

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

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

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

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    O nome inserido para esse comando é a 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 Arquivo 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 de Hub IoT.
    Certificados de cadeia completa certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem Contém a cadeia completa do certificado, 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 AC) para DPS ou Hub IoT.

Crie certificados de assinatura do Edge

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

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

  1. Navegue até o diretório de trabalho wrkdir que tem os scripts de geração de certificado e o certificado de AC raiz.

  2. Crie uma chave privada e o Certificado de AC de IoT Edge com o comando a seguir. Insira um nome para o certificado CA. Não use o mesmo nome que o parâmetro nome do host no arquivo de configuração ou a ID do dispositivo no Hub IoT para o comando New-CACertsEdgeDevice .

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Esse comando cria vários arquivos de certificado e chave. Copie o seguinte certificado e o par de chaves para o dispositivo do IoT Edge e referencie-os 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 deseje usar a autenticação X.509 com o Hub IoT ou DPS. Se você quiser usar a autenticação de chave simétrica, você não precisará criar certificados para o dispositivo downstream e poderá 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 (AC).

  • Para a autenticação autoassinada X.509, às vezes conhecida como autenticação de impressão digital, você precisa criar certificados para serem colocados em seu dispositivo IoT. Esses certificados têm uma impressão digital neles que você compartilha com o Hub IoT para autenticação.
  • Para uma autenticação assinada por AC (autoridade de certificado) X.509, você precisa de um certificado AC raiz registrado no Hub IoT ou DPS que você use para assinar certificados para seu dispositivo IoT. Qualquer dispositivo que use um certificado emitido pelo certificado AC raiz ou qualquer um dos respectivos certificados intermediários poderá autenticar desde que a cadeia completa seja apresentada pelo dispositivo.

Os scripts de geração de certificado podem ajudá-lo a fazer 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 AC raiz para sua solução. Em seguida, você recupera uma "impressão digital" hexadecimal dos certificados para fornecer ao Hub IoT. O dispositivo IoT também precisa de uma cópia de seus certificados de dispositivo para que ele possa ser autenticado com o Hub IoT.

  1. Navegue até o diretório de trabalho wrkdir que tem os scripts de geração de certificado e o certificado de AC raiz.

  2. Crie dois certificados de dispositivo (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"
    

    Esse comando cria vários arquivos de certificado e chave. Os seguintes certificados e pares de 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 SHA-1 (chamada de impressão digital nos contextos do Hub IoT) de cada certificado. A impressão digital é uma cadeia hexadecimal de 40 caracteres. Use o comando openssl a seguir para exibir o certificado e encontrar a impressão digital:

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

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

Certificados AC autoassinados

Ao autenticar um dispositivo IoT com certificados assinados por autoridade de certificação, você precisa criar certificados de dispositivo com base no certificado AC raiz para sua solução no Hub IoT. Use o mesmo certificado de AC raiz para criar certificados de dispositivo a serem colocados em seu dispositivo IoT para que ele possa ser autenticado com o Hub IoT.

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

  1. Carregue o arquivo de certificado de autoridade de certificação raiz do seu diretório de trabalho, certs\azure-iot-test-only.root.ca.cert.pem, para 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 AC raiz.

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

    New-CACertsDevice "<device id>"
    

    Esse comando cria vários arquivos de certificado e chave. Os seguintes certificados e pares de 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