Gerar e exportar certificados para ligações VPN de Utilizador com o PowerShell

As configurações de VPN de utilizador (ponto a site) podem ser configuradas para exigir que os certificados se autentiquem. Este artigo mostra-lhe como criar um certificado de raiz autoassinado e gerar certificados de cliente com o PowerShell no Windows 10 (ou posterior) ou Windows Server 2016 (ou posterior).

Os cmdlets do PowerShell que utiliza para gerar certificados fazem parte do sistema operativo e não funcionam noutras versões do Windows. O sistema operativo anfitrião só é utilizado para gerar os certificados. Assim que os certificados forem gerados, pode carregá-los ou instalá-los em qualquer sistema operativo cliente suportado.

Se não tiver um computador que cumpra o requisito do sistema operativo, pode utilizar o MakeCert para gerar certificados. Os certificados gerados através de qualquer um dos métodos podem ser instalados em qualquer sistema operativo cliente suportado.

Criar um certificado de raiz autoassinado

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

  1. A partir de um computador com Windows 10 ou posterior, ou Windows Server 2016, abra uma consola Windows PowerShell com privilégios elevados.

  2. Crie um certificado de raiz autoassinado. O exemplo seguinte cria um certificado de raiz autoassinado com o nome "P2SRootCert" que é instalado automaticamente em "Certificados-Utilizador Atual\Pessoal\Certificados". Pode ver o certificado ao abrir certmgr.msc ou Gerir Certificados de Utilizador.

    Faça as modificações necessárias antes de utilizar este exemplo. O parâmetro "NotAfter" é opcional. Por predefinição, sem este parâmetro, o certificado expira dentro de 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 a consola do PowerShell aberta e continue com os passos seguintes para gerar um certificado de cliente.

Gerar um certificado de cliente

Cada computador cliente que se ligue a uma VNet através de ponto a site tem de ter um certificado de cliente instalado. Pode gerar um certificado de cliente a partir do certificado de raiz autoassinado e, em seguida, exportar e instalar o certificado de cliente. Se o certificado de cliente não estiver instalado, a autenticação falhará.

Os passos seguintes explicam como gerar um certificado de cliente a partir de um certificado de raiz autoassinado. Pode gerar vários certificados de cliente a partir do mesmo certificado de raiz. Quando gera certificados de cliente com os passos abaixo, o certificado de cliente é instalado automaticamente no computador que utilizou para gerar o certificado. Se quiser instalar um certificado de cliente noutro computador cliente, exporte o certificado.

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

Exemplo 1 – a sessão da consola do PowerShell ainda está aberta

Utilize este exemplo se não tiver fechado a consola do PowerShell depois de criar o certificado de raiz autoassinado. Este exemplo continua a partir da secção anterior e utiliza a variável "$cert" declarada. Se fechou a consola do PowerShell depois de criar o certificado de raiz autoassinado ou se estiver a criar certificados de cliente adicionais numa nova sessão de consola do PowerShell, utilize os passos no Exemplo 2.

Modifique e execute o exemplo para gerar um certificado de cliente. Se executar o exemplo seguinte sem o modificar, o resultado será um certificado de cliente com o nome "P2SChildCert". Se quiser atribuir outro nome ao certificado subordinado, modifique o valor CN. Não altere a TextExtension ao executar este exemplo. O certificado de cliente que gerar é instalado automaticamente em "Certificados – Utilizador 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 da consola do PowerShell

Se estiver a criar certificados de cliente adicionais ou não estiver a utilizar a mesma sessão do PowerShell que utilizou para criar o certificado de raiz autoassinado, siga os seguintes passos:

  1. Identifique o certificado de raiz autoassinado que está instalado no computador. Este cmdlet devolve uma lista de certificados que estão instalados no seu computador.

    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
  2. Localize o nome do requerente na lista devolvida e, em seguida, copie o thumbprint localizado junto ao mesmo para um ficheiro de texto. No exemplo seguinte, existem dois certificados. O nome CN é o nome do certificado de raiz autoassinado a partir do qual pretende gerar um certificado subordinado. Neste caso, "P2SRootCert".

    Thumbprint                                Subject
    ----------                                -------
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Declare uma variável para o certificado de raiz com o thumbprint do passo anterior. Substitua THUMBPRINT pelo thumbprint do certificado de raiz a partir do qual pretende gerar um certificado subordinado.

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

    Por exemplo, ao utilizar o thumbprint para P2SRootCert no passo anterior, a variável tem o seguinte aspeto:

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Modifique e execute o exemplo para gerar um certificado de cliente. Se executar o exemplo seguinte sem o modificar, o resultado será um certificado de cliente com o nome "P2SChildCert". Se quiser atribuir outro nome ao certificado subordinado, modifique o valor CN. Não altere a TextExtension ao executar este exemplo. O certificado de cliente que gerar é instalado automaticamente em "Certificados – Utilizador 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 de raiz (.cer)

Depois de criar um certificado de raiz autoassinado, exporte o ficheiro .cer do certificado de raiz (não a chave privada). Mais tarde, irá carregar os dados de certificado necessários contidos no ficheiro para o Azure. Os passos seguintes ajudam-no a exportar o ficheiro .cer para o certificado de raiz autoassinado e a obter os dados de certificado necessários.

  1. Para obter o ficheiro .cer do certificado, abra Gerir certificados de utilizador.

    Localize o certificado de raiz autoassinado, normalmente em "Certificados – Utilizador Atual\Pessoal\Certificados" e clique com o botão direito do rato. Clique em Todas as Tarefas ->Exportar. Esta ação abre o Assistente para Exportar Certificados.

    Se não conseguir encontrar o certificado em "Utilizador Atual\Pessoal\Certificados", poderá ter aberto acidentalmente "Certificados – Computador Local" em vez de "Certificados – Utilizador Atual".

    Captura de ecrã a mostrar a janela Certificados com Todas as Tarefas e, em seguida, Exportar selecionada.

  2. No assistente, clique em Seguinte.

  3. Selecione Não, não exportar a chave privada e, em seguida, clique em Seguinte.

    Captura de ecrã a mostrar Não exportar a chave privada.

  4. Na página Formato do Ficheiro de Exportação, selecione X.509 codificado com Base-64 (.CER). e, em seguida, clique em Seguinte.

    Captura de ecrã a mostrar a exportação codificada com Base-64.

  5. Em Ficheiro a Exportar, navegue para a localização para a qual pretende exportar o certificado. Em Nome do ficheiro, atribua um nome ao ficheiro de certificado. Em seguida, clique em Seguinte.

  6. Clique em Concluir para exportar o certificado.

  7. Verá uma confirmação a indicar "A exportação foi bem-sucedida".

  8. Aceda à localização onde exportou o certificado e abra-o com um editor de texto, como o Bloco de Notas. Se exportou o certificado no X.509 codificado com Base-64 necessário (. Formato CER), verá texto semelhante ao seguinte exemplo. A secção realçada a azul contém as informações que copia e carrega para o Azure.

    Captura de ecrã a mostrar o ficheiro CER aberto no Bloco de Notas com os dados do certificado realçados.

    Se o seu ficheiro não tiver um aspeto semelhante ao exemplo, normalmente significa que não o exportou com o X.509 codificado com Base-64(). FORMATO CER). Além disso, se utilizar um editor de texto diferente do Bloco de Notas, compreenda que alguns editores podem introduzir formatação não intencional em segundo plano. Isto pode criar problemas ao carregar o texto deste certificado para o Azure.

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

Poderá querer exportar o certificado de raiz autoassinado e armazená-lo em segurança como cópia de segurança. Se necessário, pode instalá-lo mais tarde noutro computador e gerar mais certificados de cliente. Para exportar o certificado de raiz autoassinado como um .pfx, selecione o certificado de raiz e utilize os mesmos passos descritos em Exportar um certificado de cliente.

Exportar o certificado de cliente

Quando gera um certificado de cliente, este é instalado automaticamente no computador que utilizou para o gerar. Se quiser instalar o certificado de cliente noutro computador cliente, primeiro tem de exportar o certificado de cliente.

  1. Para exportar um certificado de cliente, abra Gerir Certificados de Utilizador. Os certificados de cliente que gerou estão, por predefinição, localizados em "Certificados – Utilizador 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 de Exportação de Certificados.

    Captura de ecrã a mostrar a janela Certificados com Todas as Tarefas e Exportação selecionadas.

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

  3. Selecione Sim, exporte a chave privada e, em seguida, clique em Seguinte.

    Captura de ecrã a mostrar Sim a 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. Esta definição exporta adicionalmente as informações de certificado de raiz necessárias para a autenticação de cliente com êxito. Sem ela, a autenticação do cliente falha porque o cliente não tem o certificado de raiz fidedigna. Em seguida, clique em Seguinte.

    Captura de ecrã para exportar a página de formato de ficheiro.

  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. Em seguida, clique em Seguinte.

    Captura de ecrã a mostrar a palavra-passe introduzida 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. Em seguida, clique em Seguinte.

  7. Clique em Concluir para exportar o certificado.

Instalar um certificado de cliente exportado

Cada cliente que se liga através de uma ligação P2S requer a instalação local de um certificado de cliente. Para obter os passos para instalar um certificado, veja Instalar certificados de cliente.

Passos seguintes

Continue com os passos de WAN Virtual para as ligações VPN do utilizador.