Criar certificados de demonstração para testar as funcionalidades dos dispositivos IoT Edge
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.
Os dispositivos IoT Edge exigem 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, poderá usar certificados de demonstração para experimentar os recursos do IoT Edge em seu ambiente de teste. Este artigo descreve a funcionalidade dos scripts de geração de certificados que o IoT Edge fornece para teste.
Aviso
Esses certificados expiram em 30 dias e não devem ser usados em nenhum cenário de produção.
Você pode criar certificados em qualquer máquina e, em seguida, copiá-los para seu dispositivo IoT Edge ou gerar os certificados diretamente no dispositivo IoT Edge.
Pré-requisitos
Uma máquina de desenvolvimento com 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, você precisa instalar o OpenSSL e, em seguida, clonar os scripts de geração e configurá-los para serem executados localmente no PowerShell.
Instale o OpenSSL
Instale o OpenSSL para Windows na máquina que você está usando para gerar os certificados. Se você já tiver o OpenSSL instalado em seu dispositivo Windows, verifique se openssl.exe está disponível em sua variável de ambiente PATH.
Existem várias maneiras de instalar o OpenSSL, incluindo as seguintes opções:
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: Baixe o código-fonte OpenSSL e construa os binários em sua máquina sozinho ou via vcpkg. As instruções listadas abaixo usam vcpkg para baixar o código-fonte, compilar e instalar o OpenSSL em sua máquina Windows com etapas fáceis.
Navegue até um diretório onde você deseja instalar o vcpkg. Siga as instruções para baixar e instalar o vcpkg.
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
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.
Abra uma janela do PowerShell no modo de administrador.
Clone o repositório git do IoT Edge, que contém scripts para gerar certificados de demonstração. Use o
git clone
comando ou baixe o ZIP.git clone https://github.com/Azure/iotedge.git
Crie um diretório no qual você deseja trabalhar e copie os scripts de certificado lá. Todos os arquivos de certificado e chave serã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.Habilite o PowerShell para executar os scripts.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
Traga as funções usadas pelos scripts para o namespace global do PowerShell.
. .\ca-certs.ps1
A janela do PowerShell exibirá um aviso de que os certificados gerados por esse script são apenas para fins de teste e não devem ser usados em cenários de produção.
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 uma autoridade de certificação raiz necessária para cada etapa deste artigo.
O certificado de autoridade de certificação raiz é usado para criar todos os outros certificados de demonstração para testar um cenário do IoT Edge. Você pode continuar usando o mesmo certificado de CA 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. O novo certificado de autoridade de certificação raiz substituirá o antigo e todos os certificados downstream feitos a partir do antigo deixarão de funcionar. Se você quiser vários certificados de autoridade de certificação raiz, certifique-se de gerenciá-los em pastas separadas.
Navegue até o diretório
wrkdir
de trabalho onde você colocou os scripts de geração de certificado.Crie o certificado de autoridade de certificação raiz e faça com que ele assine um certificado intermediário. Os certificados são todos colocados no seu diretório de trabalho.
New-CACertsCertChain rsa
Este comando de script cria vários arquivos de certificado e chave, mas quando os artigos solicitam o certificado de autoridade de certificação raiz, use o seguinte arquivo:
certs\azure-iot-test-only.root.ca.cert.pem
Esse certificado é necessário antes que você possa 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.
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.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ê passa para este comando é a ID do dispositivo IoT Edge no Hub IoT.
O novo comando de identidade do dispositivo cria vários arquivos de certificado e chave:
Type Ficheiro Description 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
Esses certificados são necessários para cenários de gateway porque o certificado de CA de Borda é como o dispositivo IoT Edge verifica sua identidade para dispositivos downstream. Você pode pular esta seção se não estiver conectando nenhum dispositivo downstream ao IoT Edge.
O certificado de CA de Borda também é responsável por criar certificados para módulos em execução no dispositivo, mas o tempo de execução do IoT Edge pode criar certificados temporários se a CA de Borda não estiver configurada. Os certificados de CA de Borda vão na seção CA de Borda do config.toml
arquivo no dispositivo IoT Edge. Para saber mais, consulte Entender como o Azure IoT Edge usa certificados.
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.Crie o certificado da autoridade de certificação do IoT Edge e a chave privada com o seguinte comando. Forneça um nome para o certificado da autoridade de certificação. O nome passado para o comando New-CACertsEdgeDevice não deve ser o mesmo que o parâmetro hostname no arquivo de configuração ou o ID do dispositivo no Hub IoT.
New-CACertsEdgeDevice "<CA cert name>"
Este comando cria vários arquivos de certificado e chave. O seguinte certificado e par de chaves precisam ser copiados para um dispositivo IoT Edge e referenciados no arquivo de configuração:
certs\iot-edge-device-ca-<CA cert name>-full-chain.cert.pem
private\iot-edge-device-ca-<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.
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.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
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.
Carregue o arquivo de certificado de autoridade de certificação raiz do diretório de trabalho
certs\azure-iot-test-only.root.ca.cert.pem
para o hub IoT.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>"
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