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 a autenticação de certificados. Este artigo mostra como criar um certificado raiz autoassinado e gerar certificados do cliente utilizando 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 forem gerados, você poderá carregá-los ou instalá-los em qualquer sistema operacional cliente com suporte.
Se você não tiver um computador que atende ao requisito de sistema operacional, poderá usar o MakeCert para gerar certificados. Os certificados que você gerar utilizando qualquer um dos métodos podem ser instalados em qualquer sistema operacional cliente com suporte.
Criar um certificado raiz autoassinado
Utilize o cmdlet New-SelfSignedCertificate para criar um certificado raiz autoassinado. Para obter informações adicionais sobre os parâmetros, consulte New-SelfSignedCertificate.
Em um computador com Windows 10 ou posterior ou 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". Exiba o certificado abrindo certmgr.msc ou Gerenciar Certificados de Usuário.
Faça as modificações necessárias antes de usar esta amostra. 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 certificado do cliente.
Gerar um certificado do cliente
Cada computador cliente que se conecta a uma rede virtual usando ponto a site deve ter um certificado do cliente instalado. Você gera um certificado do cliente com base no certificado raiz autoassinado e, em seguida, a exporta e instala o certificado do cliente. Se o certificado do cliente não estiver instalado, a autenticação não vai funcionar.
As etapas abaixo lhe guiarão pela geração de um certificado do cliente por meio de um certificado raiz autoassinado. Você pode gerar vários certificados de cliente a partir do mesmo certificado raiz. Quando você gerar certificados do cliente usando as etapas a seguir, o certificado do cliente será instalado automaticamente no computador que você tiver usado para gerar o certificado. Se você quiser instalar um certificado do cliente em outro computador cliente, exporte o certificado.
Os exemplos utilizam o cmdlet New-SelfSignedCertificate para gerar um certificado do cliente.
Exemplo 1 - sessão do console do PowerShell ainda aberta
Use esse exemplo se você não fechou o console do PowerShell depois de criar o certificado raiz autoassinado. Este exemplo continua da seção anterior e usa a variável declarada '$cert'. Se você fechou o console do PowerShell após criar o certificado raiz autoassinado ou está criando certificados do cliente adicionais em uma nova sessão de console do PowerShell, use as etapas no Examplo 2.
Modifique e execute o exemplo para gerar um certificado do cliente. Se você executar o exemplo a seguir sem modificá-lo, o resultado será um certificado do cliente chamado 'P2SChildCert'. Se você deseja nomear o certificado filho diferentemente, modifique o valor de CN. Não altere TextExtension ao executar esse exemplo. O certificado do cliente que você gera é instalado automaticamente em 'Certificates - Current User\Personal\Certificates' em 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ê está criando outros certificados do cliente ou não está usando a mesma sessão do PowerShell usada para criar o certificado raiz autoassinado, use as seguintes etapas:
Identifique o certificado raiz autoassinado instalado no computador. Esse cmdlet retorna uma lista de certificados instalados no seu computador.
Get-ChildItem -Path "Cert:\CurrentUser\My"
Localize o nome da entidade da lista retornada e copie a impressão digital localizada ao lado dela para um arquivo de texto. No exemplo a seguir, há dois certificados. O nome CN é o nome do certificado raiz autoassinado do qual você deseja gerar um certificado filho. Nesse 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 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 teria esta aparência:
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
Modifique e execute o exemplo para gerar um certificado do cliente. Se você executar o exemplo a seguir sem modificá-lo, o resultado será um certificado do cliente chamado 'P2SChildCert'. Se você deseja nomear o certificado filho diferentemente, modifique o valor de CN. Não altere TextExtension ao executar esse exemplo. O certificado do cliente que você gera é instalado automaticamente em 'Certificates - Current User\Personal\Certificates' em 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 de certificado raiz (.cer)
Após criar um certificado raiz autoassinado, exporte o arquivo .cer do certificado raiz (não a chave privada). Posteriormente, você carregará no Azure os dados de certificado necessários contidos no arquivo. As etapas a seguir ajudam você a exportar o arquivo .cer de seu certificado raiz autoassinado e a recuperar os dados de certificado necessários.
Para obter o arquivo .cer do certificado, abra Gerenciar certificados de usuário.
Localize o certificado raiz autoassinado, normalmente em Certificados – Usuário Atual\Pessoal\Certificados, então clique nele com o botão direito do mouse. Selecione Todas as Tarefas ->Exportar. Isso abre o Assistente para Exportação de Certificados.
Se você não encontrar o certificado em “Usuário\Pessoal\Certificados”, pode ser que você tenha aberto acidentalmente Certificados - Computador Local em vez de Certificados - Usuário Atual.
No assistente, selecione Próximo.
Selecione Não exportar a chave privada e selecione Avançar.
Na página Exportar Formato de Arquivo, selecione X.509 codificado em Base-64 (.CER). e selecione Avançar.
Para o Arquivo a ser Exportado, use Procurar para encontrar a localização para a qual você deseja exportar o certificado. Em Nome do arquivo, dê um nome ao arquivo de certificado. Em seguida, selecione Avançar.
Selecione Concluir para exportar o certificado.
Você verá a confirmação de que A exportação foi bem-sucedida.
Vá para o local em que você exportou o certificado e abra-o usando um editor de texto como o Bloco de Notas. Se você exportou o certificado no formato X.509 codificado em Base-64 necessário (.CER), 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 arquivo não for semelhante ao exemplo, isso normalmente significa que o certificado não foi exportado usando o formato X.509 codificado em Base 64 (.CER). Além disso, se você usa um editor de texto diferente do Bloco de Notas, é importante saber que alguns editores podem introduzir formatação não intencional em segundo plano. Isso pode criar problemas ao fazer upload do texto desse certificado para o Azure.
Exportar o certificado raiz autoassinado e a chave privada para armazená-lo (opcional)
Convém exportar o certificado raiz autoassinado e armazená-lo com segurança como backup. Se necessário, você poderá instalá-lo posteriormente em outro computador e gerar mais certificados do cliente. Para exportar o certificado raiz autoassinado como um .pfx, selecione o certificado raiz e use as mesmas etapas, conforme descrito em Exportar um certificado do cliente para exportar.
Exportar o certificado do cliente
Quando você gerar um certificado do cliente, ele será instalado automaticamente no computador que você usou para gerá-lo. Se você quiser instalar um certificado do cliente em outro computador cliente, primeiro precisará exportar o certificado do cliente.
Para exportar um certificado de cliente, abra Gerenciar certificados de usuário. Os certificados do cliente que você gerou são, por padrão, localizados em 'Certificates - Current User\Personal\Certificates'. Clique com o botão direito do mouse no certificado do cliente que você deseja exportar, clique em todas as tarefas e 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, em seguida, clique em Avançar.
Na página Formato do Arquivo de Exportação, deixe os padrões selecionados. Verifique se a opção Incluir todos os certificados no caminho de certificação, se possível está selecionada. Adicionalmente, essa exporta as informações sobre o certificado raiz necessárias para uma autenticação de cliente bem-sucedida. Sem isso, a autenticação de cliente irá falhar porque o cliente não possui o certificado raiz confiável. Em seguida, clique em Avançar.
Na página Segurança , você deve proteger a chave privada. Se você optar por usar uma senha, não deixe de anotar ou lembrar da senha definida para esse certificado. Em seguida, clique em Avançar.
Em Arquivo a ser Exportado, use Procurar para encontrar a localização para a qual você deseja exportar o certificado. Em Nome do arquivo, dê um nome ao arquivo de certificado. Em seguida, clique em Avançar.
Clique em Concluir para exportar o certificado.
Linux
Para etapas do Linux, confira Gerar certificados autoassinados – Linux – OpenSSL ou Gerar certificados autoassinados – Linux – strongSwan.
Instalar um certificado do cliente exportado
Cada cliente que se conecta por uma conexão P2S requer que um certificado do cliente seja instalado localmente. Para ver as etapas para instalar um certificado, confira Instalar certificados do cliente.
Próximas etapas
Continue com as Etapas da WAN Virtual para conexões de VPN do usuário.