Gerar e exportar certificados para conexões VPN de usuário usando o PowerShell
As configurações de VPN do usuário (ponto a site) podem ser configuradas para exigir certificados para autenticação. 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).
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.
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.
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
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:
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"
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
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"
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.
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.
No assistente, selecione Avançar.
Selecione Não, não exportar a chave privada e, em seguida, selecione Avançar.
Na página Formato de Arquivo de Exportação, selecione X.509 codificado em Base-64 (. CER)., e selecione Avançar.
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.
Selecione Concluir para exportar o certificado.
Você vê uma confirmação dizendo que a exportação foi bem-sucedida.
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.
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.
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.
No Assistente para Exportação de Certificados, clique em Avançar para continuar.
Selecione Sim, exportar a chave privada e clique em Avançar.
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. Em seguida, clique em Seguinte.
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.
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.
Clique em Concluir para exportar o certificado.
Linux
Para conhecer as etapas do Linux, consulte Gerar certificados autoassinados - Linux - OpenSSL ou Gerar certificados autoassinados - Linux - strongSwan.
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 conhecer as etapas para instalar um certificado, consulte Instalar certificados de cliente.
Próximos passos
Continue com as etapas de WAN Virtual para conexões VPN de usuário.