Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Certificados X.509 são documentos digitais que representam um usuário, computador, serviço ou dispositivo. Uma autoridade certificadora (CA), uma autoridade subordinada ou uma autoridade de registro emite certificados X.509. Os certificados contêm a chave pública do assunto do certificado. Eles não contêm a chave privada do sujeito, que deve ser armazenada de forma segura. O RFC 5280 documenta certificados de chave pública, incluindo seus campos e extensões. Certificados de chave pública são assinados digitalmente e normalmente contêm as seguintes informações:
- Informações sobre o tema do certificado
- A chave pública que corresponde à chave privada do sujeito
- Informações sobre a AC emissora
- Os algoritmos de criptografia e/ou assinatura digital suportados
- Informações para determinar o status de revogação e validade do certificado
Campos de certificado
Existem três versões incrementais do padrão de certificado X.509, e cada versão subsequente adicionou campos de certificado ao padrão:
- A versão 1 (v1), publicada em 1988, segue o padrão inicial X.509 para certificados.
- A Versão 2 (v2), publicada em 1993, adiciona dois campos aos campos incluídos na Versão 1.
- A Versão 3 (v3), publicada em 2008, representa a versão atual do padrão X.509. Esta versão adiciona suporte para extensões de certificado.
Esta seção é destinada a servir como referência geral para os campos de certificado e extensões de certificados disponíveis nos certificados X.509. Para mais informações sobre campos de certificado e extensões de certificado, incluindo tipos de dados, restrições e outros detalhes, consulte a especificação RFC 5280 .
Campos da versão 1
A tabela a seguir descreve os campos de certificado da Versão 1 para certificados X.509. Todos os campos incluídos nesta tabela estão disponíveis em versões subsequentes do certificado X.509.
| Name | Description |
|---|---|
| Version | Um inteiro que identifica o número de versão do certificado. |
| Número de série | Um inteiro que representa o número único para cada certificado emitido por uma autoridade certificadora (CA). |
| Assinatura | O identificador do algoritmo criptográfico usado pela CA para assinar o certificado. O valor inclui tanto o identificador do algoritmo quanto quaisquer parâmetros opcionais usados por esse algoritmo, se aplicável. |
| Emissor | O nome distinto (DN) do CA emitidor do certificado. |
| Validade | O período inclusivo pelo qual o certificado é válido. |
| Assunto | O nome distinto (DN) do sujeito do certificado. |
| Assunto Informação da Chave Pública | A chave pública pertencente ao sujeito do certificado. |
Campos da versão 2
A tabela a seguir descreve os campos adicionados para a Versão 2, contendo informações sobre o emissor do certificado. Esses campos, no entanto, são raramente utilizados. Todos os campos incluídos nesta tabela estão disponíveis em versões subsequentes do certificado X.509.
| Name | Description |
|---|---|
| ID Único do Emissor | Um identificador único que representa a CA emissora, conforme definido pela CA emissora. |
| ID Único do Sujeito | Um identificador único que representa o sujeito do certificado, conforme definido pela CA emissora. |
Campos da versão 3
A tabela a seguir descreve o campo adicionado para a Versão 3, representando uma coleção de extensões de certificados X.509.
| Name | Description |
|---|---|
| Extensões | Uma coleção de extensões de certificados padrão e específicas da Internet. Para mais informações sobre as extensões de certificados disponíveis para certificados X.509 v3, veja Extensões de certificado. |
Extensões de certificados
Extensões de certificado, introduzidas com a Versão 3, fornecem métodos para associar mais atributos a usuários ou chaves públicas e para gerenciar relações entre autoridades certificadoras. Para mais informações sobre extensões de certificado, veja a seção Extensões de Certificados da especificação RFC 5280 .
Extensões padrão
O padrão X.509 define as extensões incluídas nesta seção, para uso na infraestrutura de chave pública da Internet (PKI).
| Name | Description |
|---|---|
| Identificador de chave de autoridade | Um identificador que representa o sujeito do certificado e o número de série do certificado da CA que emitiu esse certificado, ou um hash da chave pública da CA emissora. |
| Identificador de Chave de Entidade | Um hash da chave pública do certificado atual. |
| Uso de chave | Um valor bitmap que define os serviços para os quais um certificado pode ser usado. |
| Período de Uso da Chave Privada | O período de validade da parte privada da chave de um par de chaves. |
| Políticas de Certificados | Uma coleção de informações de política, usada para validar o assunto do certificado. |
| Mapeamentos de políticas | Uma coleção de mapeamentos de políticas, cada um dos quais mapeia uma política em uma organização para uma política em outra. |
| Nome alternativo do assunto | Uma coleção de nomes alternativos para o sujeito. |
| Nome Alternativo do Emissor | Uma coleção de nomes alternativos para a CA emissora. |
| Atributos do Diretório de Sujeito | Uma coleção de atributos de um diretório X.500 ou LDAP. |
| Restrições básicas | Um conjunto de restrições que permitem ao certificado designar se ele é emitido para uma CA, ou para um usuário, computador, dispositivo ou serviço. Essa extensão também inclui uma restrição de comprimento de caminho que limita o número de CAs subordinadas que podem existir. |
| Restrições de Nome | Um conjunto de restrições que designam quais namespaces são permitidos em um certificado emitido pela CA. |
| Restrições de políticas | Um conjunto de restrições que podem ser usadas para proibir mapeamentos de políticas entre CAs. |
| Uso Estendido de Teclas | Uma coleção de valores de propósito de chave que indicam como a chave pública de um certificado pode ser usada, além dos propósitos identificados na extensão de Uso de Chaves . |
| Pontos de Distribuição CRL | Uma coleção de URLs onde a lista base de revogação de certificados (CRL) é publicada. |
| Inibir qualquer Política | Inibe o uso do OID de Todas as Políticas de Emissão (2.5.29.32.0) em certificados CA subordinados |
| CRL mais recente | Essa extensão, também conhecida como Delta CRL Distribution Point, contém uma ou mais URLs onde o delta CRL da CA emissora é publicado. |
Ramas privadas de Internet
As extensões incluídas nesta seção são semelhantes às prorrogações padrão e podem ser usadas para direcionar solicitações para informações online sobre a CA emissora ou o assunto do certificado.
| Name | Description |
|---|---|
| Acesso à Informação da Autoridade | Uma coleção de entradas que descrevem o formato e a localização de informações adicionais fornecidas pela CA emissora. |
| Acesso à Informação Tematica | Uma coleção de entradas que descrevem o formato e a localização de informações adicionais fornecidas pelo sujeito do certificado. |
Formatos de certificado
Certificados podem ser salvos em vários formatos. Hub IoT do Azure autenticação normalmente utiliza os formatos Privacy-Enhanced Mail (PEM) e Personal Information Exchange (PFX). A tabela a seguir descreve arquivos e formatos comumente usados para representar certificados.
| Formato | Description |
|---|---|
| Certificado binário | Um certificado binário de forma bruta usando codificação ASN.1 de Regras de Codificação Distinguida (DER). |
| Formato ASCII PEM | Um arquivo de certificado PEM (.pem) contém um certificado codificado em Base64 começando e -----BEGIN CERTIFICATE----- terminando em -----END CERTIFICATE-----. Um dos formatos mais comuns para certificados X.509, o formato PEM é exigido pelo Hub IoT ao fazer upload de certos certificados, como certificados de dispositivos. |
| Chave PEM ASCII | Contém uma chave DER codificada em Base64, opcionalmente com mais metadados sobre o algoritmo usado para proteção por senha. |
| Certificado PKCS #7 | Um formato projetado para o transporte de dados assinados ou criptografados. Pode incluir toda a cadeia de certificados. O RFC 2315 define esse formato. |
| Tecla PKCS #8 | O formato para uma loja privada de chaves. O RFC 5208 define esse formato. |
| Chave e certificado PKCS #12 | Um formato complexo que pode armazenar e proteger uma chave e toda a cadeia de certificados. É comumente usado com uma extensão .p12 ou .pfx. PKCS #12 é sinônimo do formato PFX. O RFC 7292 define esse formato. |
Certificados autoassinados
Você pode autenticar um dispositivo no seu hub IoT para fins de teste usando dois certificados autoassinados. Esse tipo de autenticação às vezes é chamado de autenticação por impressão digital porque os certificados são identificados por valores de hash calculados chamados impressões digitais ou digitais. Esses valores de hash calculados são usados pelo Hub IoT para autenticar seus dispositivos.
Importante
Recomendamos que você utilize certificados assinados por uma Autoridade Certificadora (CA) emissora, mesmo para fins de teste. Nunca use certificados autoassinados na produção.
Criar um certificado autoassinado
Você pode usar o OpenSSL para criar certificados autoassinados. Os passos a seguir mostram como executar comandos OpenSSL em um shell bash para criar um certificado autoassinado e recuperar uma impressão digital do certificado que pode ser usada para autenticar seu dispositivo no Hub IoT.
Note
Se você quiser usar certificados autoassinados para testes, deve criar dois certificados para cada dispositivo.
Execute o seguinte comando para gerar uma chave privada e criar um arquivo de chave privada (.key) codificada em PEM, substituindo os seguintes marcadores de posição por seus valores correspondentes. A chave privada gerada pelo comando a seguir utiliza o algoritmo RSA com criptografia de 2048 bits.
{FicheiroChave}. O nome do seu arquivo de chave privada.
openssl genpkey -out {KeyFile} -algorithm RSA -pkeyopt rsa_keygen_bits:2048Execute o seguinte comando para gerar uma solicitação de assinatura de certificado PKCS #10 (CSR) e crie um arquivo CSR (.csr), substituindo os seguintes marcadores de posição por seus valores correspondentes. Certifique-se de especificar o ID do dispositivo IoT para o seu certificado autoassinado quando solicitado.
{FicheiroChave}. O nome do seu arquivo de chave privada.
{Arquivo Csr}. O nome do seu arquivo de CSR.
{DeviceID}. O nome do seu dispositivo IoT.
openssl req -new -key {KeyFile} -out {CsrFile} Country Name (2 letter code) [XX]:. State or Province Name (full name) []:. Locality Name (eg, city) [Default City]:. Organization Name (eg, company) [Default Company Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server hostname) []:{DeviceID} Email Address []:. Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:. An optional company name []:.Execute o comando a seguir para examinar e verificar seu CSR, substituindo os seguintes marcadores de lugar por seus valores correspondentes.
{Arquivo Csr}. O nome do seu arquivo de certificado.
openssl req -text -in {CsrFile} -verify -nooutExecute o seguinte comando para gerar um certificado autoassinado e crie um arquivo de certificado codificado em PEM (.crt), substituindo os seguintes marcadores de posição por seus valores correspondentes. O comando converte e assina seu CSR com sua chave privada, gerando um certificado autoassinado que expira em 365 dias.
{FicheiroChave}. O nome do seu arquivo de chave privada.
{Arquivo Csr}. O nome do seu arquivo de CSR.
{Arquivo CRT}. O nome do seu arquivo de certificado.
openssl x509 -req -days 365 -in {CsrFile} -signkey {KeyFile} -out {CrtFile}Execute o comando seguinte para recuperar a impressão digital do certificado, substituindo os seguintes marcadores de posição por seus valores correspondentes. A impressão digital de um certificado é um valor de hash calculado que é único para esse certificado. Você precisa da impressão digital para configurar seu dispositivo IoT no Hub IoT para testes.
{Arquivo CRT}. O nome do seu arquivo de certificado.
openssl x509 -in {CrtFile} -noout -fingerprint
Verifique o certificado manualmente após o upload
Quando você faz o upload do seu certificado de autoridade certificadora raiz (CA) ou do certificado de CA subordinado para seu hub IoT, você pode optar por verificar automaticamente o certificado. Se você não escolheu verificar automaticamente seu certificado durante o upload, seu certificado aparece com o status definido como Não Verificado. Você deve realizar os seguintes passos para verificar manualmente seu certificado.
Selecione o certificado para visualizar o diálogo Detalhes do Certificado .
Selecione Gerar Código de Verificação no diálogo.
Copie o código de verificação para a área de transferência. Você deve usar esse código de verificação como sujeito do certificado nas etapas seguintes. Por exemplo, se o código de verificação for
75B86466DA34D2B04C0C4C9557A119687ADAE7D4732BDDB3, adicione-o como assunto do seu certificado, conforme mostrado na próxima etapa.Existem três maneiras de gerar um certificado de verificação:
Se você estiver usando o script PowerShell fornecido pela Microsoft, execute
New-CACertsVerificationCert "<verification code>"para criar um certificado chamadoVerifyCert4.cer, substituindo<verification code>pelo código de verificação gerado anteriormente. Para obter mais informações, veja Como gerenciar certificados de AC de teste para ver amostras e tutoriais no repositório GitHub do SDK do Dispositivo Hub IoT do Azure para C.Se você estiver usando o script Bash fornecido pela Microsoft, execute
./certGen.sh create_verification_certificate "<verification code>"para criar um certificado chamado verification-code.cert.pem, substituindo<verification code>pelo código de verificação gerado anteriormente. Para mais informações, veja Gerenciando certificados de CA de teste para exemplos e tutoriais no repositório GitHub para o Hub IoT do Azure Device SDK for C.Se você está usando OpenSSL para gerar seus certificados, primeiro deve gerar uma chave privada e, em seguida, um arquivo de solicitação de assinatura de certificados (CSR). No exemplo a seguir, substitua
<verification code>pelo código de verificação gerado anteriormente:
openssl genpkey -out pop.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048 openssl req -new -key pop.key -out pop.csr ----- Country Name (2 letter code) [XX]:. State or Province Name (full name) []:. Locality Name (eg, city) [Default City]:. Organization Name (eg, company) [Default Company Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server hostname) []:<verification code> Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:Depois, crie um certificado usando o arquivo de configuração apropriado para a CA raiz ou para a CA subordinada, e o arquivo CSR. O exemplo a seguir demonstra como usar o OpenSSL para criar o certificado a partir de um arquivo de configuração de CA raiz e do arquivo CSR.
openssl ca -config rootca.conf -in pop.csr -out pop.crt -extensions client_extPara mais informações, veja Tutorial - Criar e enviar certificados para teste.
Selecione o novo certificado na visualização de Detalhes do Certificado .
Após o upload do certificado, selecione Verificar. O status do certificado deve mudar para Verificado.
Para obter mais informações
Para mais informações sobre os certificados X.509 e como eles são usados no Hub IoT, veja os artigos a seguir: