Partilhar via


Gerar e exportar certificados para ponto a site usando o PowerShell

Este artigo mostra como criar um certificado raiz autoassinado e gerar certificados de cliente usando o PowerShell no Windows 10 ou posterior, ou no Windows Server 2016 ou posterior. As etapas neste artigo ajudam a criar arquivos .pfx e .cer . Se você não tiver um computador Windows, poderá usar uma pequena VM do Windows como solução alternativa.

Os cmdlets do PowerShell que você usa para gerar certificados fazem parte do sistema operacional e não funcionam em outras versões do Windows. O sistema operacional host é usado apenas para gerar os certificados. Depois que os certificados são gerados, você pode carregá-los ou instalá-los em qualquer sistema operacional cliente suportado.

Se você não tiver um computador que atenda aos requisitos do sistema operacional, poderá usar o MakeCert para gerar certificados. Os certificados gerados usando qualquer um dos métodos podem ser instalados em qualquer sistema operacional cliente suportado .

Criar um certificado raiz autoassinado

Use o cmdlet New-SelfSignedCertificate para criar um certificado raiz autoassinado. Para obter informações adicionais sobre parâmetros, consulte New-SelfSignedCertificate.

  1. Em um computador que executa o Windows 10 ou posterior, ou o Windows Server 2016, abra um console do Windows PowerShell com privilégios elevados.

  2. Crie um certificado raiz autoassinado. O exemplo a seguir cria um certificado raiz autoassinado chamado 'P2SRootCert' que é instalado automaticamente em 'Certificates-Current User\Personal\Certificates'. Você pode exibir o certificado abrindo certmgr.msc ou Gerenciar certificados de usuário.

    Faça as modificações necessárias antes de usar este exemplo. O parâmetro 'NotAfter' é opcional. Por padrão, sem esse parâmetro, o certificado expira em 1 ano.

    $params = @{
        Type = 'Custom'
        Subject = 'CN=P2SRootCert'
        KeySpec = 'Signature'
        KeyExportPolicy = 'Exportable'
        KeyUsage = 'CertSign'
        KeyUsageProperty = 'Sign'
        KeyLength = 2048
        HashAlgorithm = 'sha256'
        NotAfter = (Get-Date).AddMonths(24)
        CertStoreLocation = 'Cert:\CurrentUser\My'
    }
    $cert = New-SelfSignedCertificate @params
    
  3. Deixe o console do PowerShell aberto e prossiga com as próximas etapas para gerar um certificado de cliente.

Gerar um certificado de cliente

Cada computador cliente que se conecta a uma rede virtual usando ponto a site deve ter um certificado de cliente instalado. Você gera um certificado de cliente a partir do certificado raiz autoassinado e, em seguida, exporta e instala o certificado de cliente. Se o certificado do cliente não estiver instalado, a autenticação falhará.

As etapas a seguir orientam você na geração de um certificado de cliente a partir de um certificado raiz autoassinado. Você pode gerar vários certificados de cliente a partir do mesmo certificado raiz. Quando você gera certificados de cliente usando as etapas abaixo, o certificado de cliente é instalado automaticamente no computador que você usou para gerar o certificado. Se desejar instalar um certificado de cliente em outro computador cliente, exporte o certificado.

Os exemplos usam o cmdlet New-SelfSignedCertificate para gerar um certificado de cliente.

Exemplo 1 - Sessão do console do PowerShell ainda aberta

Use este exemplo se você não tiver fechado o console do PowerShell depois de criar o certificado raiz autoassinado. Este exemplo continua da seção anterior e usa a variável '$cert' declarada. Se você fechou o console do PowerShell depois de criar o certificado raiz autoassinado ou estiver criando certificados de cliente adicionais em uma nova sessão do console do PowerShell, use as etapas no Exemplo 2.

Modifique e execute o exemplo para gerar um certificado de cliente. Se você executar o exemplo a seguir sem modificá-lo, o resultado será um certificado de cliente chamado 'P2SChildCert'. Se você quiser nomear o certificado filho de outra forma, modifique o valor CN. Não altere o TextExtension ao executar este exemplo. O certificado de cliente gerado é instalado automaticamente em 'Certificados - Usuário Atual\Pessoal\Certificados' no seu computador.


   $params = @{
       Type = 'Custom'
       Subject = 'CN=P2SChildCert'
       DnsName = 'P2SChildCert'
       KeySpec = 'Signature'
       KeyExportPolicy = 'Exportable'
       KeyLength = 2048
       HashAlgorithm = 'sha256'
       NotAfter = (Get-Date).AddMonths(18)
       CertStoreLocation = 'Cert:\CurrentUser\My'
       Signer = $cert
       TextExtension = @(
        '2.5.29.37={text}1.3.6.1.5.5.7.3.2')
   }
   New-SelfSignedCertificate @params

Exemplo 2 - Nova sessão de console do PowerShell

Se você estiver criando certificados de cliente adicionais ou não estiver usando a mesma sessão do PowerShell usada para criar seu certificado raiz autoassinado, use as seguintes etapas:

  1. Identifique o certificado raiz autoassinado instalado no computador. Este cmdlet retorna uma lista de certificados instalados no seu computador.

    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
  2. Localize o nome do assunto na lista retornada e, em seguida, copie a impressão digital localizada ao lado dele para um arquivo de texto. No exemplo a seguir, há dois certificados. O nome CN é o nome do certificado raiz autoassinado a partir do qual você deseja gerar um certificado filho. Neste caso, 'P2SRootCert'.

    Thumbprint                                Subject
    ----------                                -------
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Declare uma variável para o certificado raiz usando a impressão digital da etapa anterior. Substitua THUMBPRINT pela impressão digital do certificado raiz a partir do qual você deseja gerar um certificado filho.

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"
    

    Por exemplo, usando a impressão digital para P2SRootCert na etapa anterior, a variável tem esta aparência:

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Modifique e execute o exemplo para gerar um certificado de cliente. Se você executar o exemplo a seguir sem modificá-lo, o resultado será um certificado de cliente chamado 'P2SChildCert'. Se você quiser nomear o certificado filho de outra forma, modifique o valor CN. Não altere o TextExtension ao executar este exemplo. O certificado de cliente gerado é instalado automaticamente em 'Certificados - Usuário Atual\Pessoal\Certificados' no seu computador.

    $params = @{
        Type = 'Custom'
        Subject = 'CN=P2SChildCert'
        DnsName = 'P2SChildCert1'
        KeySpec = 'Signature'
        KeyExportPolicy = 'Exportable'
        KeyLength = 2048
        HashAlgorithm = 'sha256'
        NotAfter = (Get-Date).AddMonths(18)
        CertStoreLocation = 'Cert:\CurrentUser\My'
        Signer = $cert
        TextExtension = @(
         '2.5.29.37={text}1.3.6.1.5.5.7.3.2')
    }
    New-SelfSignedCertificate @params
    

Exportar a chave pública do certificado raiz (.cer)

Depois de criar um certificado raiz autoassinado, exporte o certificado raiz .cer arquivo (não a chave privada). Mais tarde, você carregará os dados de certificado necessários contidos no arquivo no Azure. As etapas a seguir ajudam você a exportar o arquivo de .cer para seu certificado raiz autoassinado e recuperar os dados de certificado necessários.

  1. Para obter o arquivo de .cer de certificado, abra Gerenciar certificados de usuário.

    Localize o certificado raiz autoassinado, normalmente em Certificados - Usuário Atual\Pessoal\Certificados, e clique com o botão direito do mouse. Selecione Todas as tarefas ->Exportar. Esta ação abre o Assistente para Exportar Certificados.

    Se não conseguir encontrar o certificado em "Usuário Atual\Pessoal\Certificados", você pode ter aberto acidentalmente Certificados - Computador Local, em vez de Certificados - Usuário Atual.

    A captura de tela mostra a janela Certificados com Todas as tarefas e Exportar selecionada.

  2. No assistente, selecione Avançar.

  3. Selecione Não, não exportar a chave privada e, em seguida, selecione Avançar.

    A captura de tela mostra Não exportar a chave privada.

  4. Na página Formato de Arquivo de Exportação, selecione X.509 codificado em Base-64 (. CER)., e selecione Avançar.

    A captura de tela mostra a exportação codificada em Base-64.

  5. Em Arquivo a Exportar, Navegue até o local para o qual deseja exportar o certificado. Em Nome do ficheiro, atribua um nome ao ficheiro de certificado. Em seguida, selecione Seguinte.

  6. Selecione Concluir para exportar o certificado.

  7. Você vê uma confirmação dizendo que a exportação foi bem-sucedida.

  8. Vá para o local onde você exportou o certificado e abra-o usando um editor de texto, como o Bloco de Notas. Se você exportou o certificado no X.509 codificado em Base-64 necessário (. CER), você verá um texto semelhante ao exemplo a seguir. A seção realçada em azul contém as informações que você copia e carrega no Azure.

    A captura de tela mostra o arquivo CER aberto no Bloco de Notas com os dados do certificado realçados.

    Se o seu arquivo não for semelhante ao exemplo, normalmente isso significa que você não o exportou usando o X.509(. CER). Além disso, se você usar um editor de texto diferente do Bloco de Notas, entenda que alguns editores podem introduzir formatação não intencional em segundo plano. Isso pode criar problemas ao carregar o texto desse certificado no Azure.

Exportar o certificado raiz autoassinado e a chave privada para armazená-lo (opcional)

Você pode exportar o certificado raiz autoassinado e armazená-lo com segurança como backup. Se necessário, você pode instalá-lo posteriormente em outro computador e gerar mais certificados de cliente. Para exportar o certificado raiz autoassinado como .pfx, selecione o certificado raiz e use as mesmas etapas descritas em Exportar um certificado de cliente.

Exportar o certificado de cliente

Quando você gera um certificado de cliente, ele é instalado automaticamente no computador que você usou para gerá-lo. Se você quiser instalar o certificado de cliente em outro computador cliente, você precisa primeiro exportar o certificado de cliente.

  1. Para exportar um certificado de cliente, abra Gerir Certificados de Utilizador. Os certificados de cliente que você gerou estão, por padrão, localizados em 'Certificados - Usuário Atual\Pessoal\Certificados'. Clique com o botão direito do rato no certificado de cliente que pretende exportar, clique em todas as tarefas e, em seguida, clique em Exportar para abrir o Assistente para Exportação de Certificados.

    A captura de tela mostra a janela Certificados com Todas as tarefas e Exportar selecionadas.

  2. No Assistente para Exportação de Certificados, clique em Avançar para continuar.

  3. Selecione Sim, exportar a chave privada e clique em Avançar.

    Captura de ecrã a mostrar Sim exportar a chave privada selecionada.

  4. Na página Exportar Formato de Ficheiro, deixe as predefinições selecionadas. Certifique-se de que Incluir todos os certificados no caminho de certificação, se possível está selecionado. Essa configuração também exporta as informações do certificado raiz necessárias para a autenticação bem-sucedida do cliente. Sem ele, a autenticação do cliente falha porque o cliente não tem o certificado raiz confiável. Clique depois em Seguinte.

    Captura de tela para a página de formato de arquivo de exportação.

  5. Na página Segurança, tem de proteger a chave privada. Se optar por utilizar uma palavra-passe, certifique-se de que regista ou memoriza a palavra-passe que define para este certificado. Clique depois em Seguinte.

    A captura de tela mostra a senha inserida e confirmada.

  6. Em Ficheiro a Exportar, Navegue até à localização para a qual pretende exportar o certificado. Em Nome do ficheiro, atribua um nome ao ficheiro de certificado. Clique depois em Seguinte.

  7. Clique em Concluir para exportar o certificado.

Instalar um certificado de cliente exportado

Cada cliente que se conecta através de uma conexão P2S requer um certificado de cliente para ser instalado localmente. Para instalar um certificado de cliente, consulte Instalar um certificado de cliente para conexões ponto a site.

Próximos passos

Continue com sua configuração ponto a site.