Autenticação mútua - AWS Client VPN

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autenticação mútua

Com a autenticação mútua, a cliente VPN usa certificados para realizar a autenticação entre o cliente e o servidor. Os certificados são uma forma digital de identificação emitida por uma autoridade certificadora (CA). O servidor usa certificados de cliente para autenticar clientes quando eles tentam se conectar ao endpoint do cliente VPN. É necessário criar um certificado e uma chave de servidor e pelo menos um certificado e uma chave de cliente.

Você deve carregar o certificado do servidor para AWS Certificate Manager (ACM) e especificá-lo ao criar um endpoint Client VPN. Ao fazer upload do certificado do servidor no ACM, você também especifica a autoridade de certificação (CA). Você só precisa fazer upload do certificado de cliente no ACM quando a CA do certificado de cliente for diferente da CA do certificado de servidor. Para obter mais informações sobre o ACM, consulte o Guia do usuário do AWS Certificate Manager.

Você pode criar um certificado de cliente separado e uma chave para cada cliente que se conectará ao endpoint do cliente VPN. Isso permite revogar um certificado de cliente específico se um usuário sair de sua organização. Nesse caso, ao criar o endpoint do cliente VPN, é possível especificar o ARN de certificado de servidor para o certificado de cliente, desde que o certificado de cliente seja emitido pela mesma CA que o certificado de servidor.

nota

Um endpoint do cliente VPN é compatível apenas com tamanhos de chave RSA de 1024 bits e 2048 bits. Além disso, o certificado do cliente deve ter o atributo CN no campo Subject (Assunto).

Quando o certificado utilizado pelo serviço Client VPN é atualizado, seja por meio da alternância automática do ACM, da importação manual automática de um novo certificado ou da atualização do metadados no IAM Identity Center, o serviço Client VPN atualiza automaticamente o endpoint do Client VPN com o certificado mais recente. Esse processo é automatizado e pode levar até 24 horas.

Linux/macOS

O procedimento a seguir usa o OpenVPN easy-rsa para gerar os certificados e as chaves de servidor e cliente e faz upload do certificado e da chave de servidor no ACM. Para obter mais informações, consulte a seção LER de início rápido do Easy-RSA 3.

Para gerar os certificados e as chaves de servidor e cliente e transferi-los por upload ao ACM
  1. Clone o repositório easy-rsa do OpenVPN para o computador local e navegue até a pasta easy-rsa/easyrsa3.

    $ git clone https://github.com/OpenVPN/easy-rsa.git
    $ cd easy-rsa/easyrsa3
  2. Inicialize um novo ambiente PKI.

    $ ./easyrsa init-pki
  3. Para criar uma nova autoridade de certificação (CA), execute este comando e siga as instruções.

    $ ./easyrsa build-ca nopass
  4. Gere o certificado e a chave de servidor.

    $ ./easyrsa --san=DNS:server build-server-full server nopass
  5. Gere o certificado e a chave de cliente.

    Certifique-se de salvar o certificado de cliente e a chave privada de cliente, pois você precisará deles ao configurar o cliente.

    $ ./easyrsa build-client-full client1.domain.tld nopass

    Opcionalmente, você pode repetir essa etapa para cada cliente (usuário final) que exija um certificado e uma chave de cliente.

  6. Copie os certificados e as chaves de servidor e de cliente para uma pasta personalizada e depois navegue até ela.

    Antes de copiar os certificados e as chaves, crie a pasta personalizada usando o comando mkdir. O exemplo a seguir cria uma pasta personalizada em seu diretório base.

    $ mkdir ~/custom_folder/ $ cp pki/ca.crt ~/custom_folder/ $ cp pki/issued/server.crt ~/custom_folder/ $ cp pki/private/server.key ~/custom_folder/ $ cp pki/issued/client1.domain.tld.crt ~/custom_folder $ cp pki/private/client1.domain.tld.key ~/custom_folder/ $ cd ~/custom_folder/
  7. Faça upload do certificado e da chave do servidor e do certificado e da chave do cliente no ACM. Certifique-se de fazer upload deles na mesma região em que pretende criar o endpoint do cliente VPN. Os comandos a seguir usam a AWS CLI para fazer upload dos certificados. Para fazer upload dos certificados usando o console do ACM, consulte Importar certificados no Guia do usuário do AWS Certificate Manager .

    $ aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
    $ aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt

    Você não precisa necessariamente carregar o certificado do cliente no ACM. Se os certificados de servidor e de cliente tiverem sido emitidos pela mesma autoridade de certificação (CA), você poderá usar o ARN de certificado de servidor tanto para o servidor quanto para o cliente ao criar o endpoint do cliente VPN. Nas etapas acima, a mesma CA foi usada para criar ambos os certificados. Entretanto, as etapas para carregar o certificado do cliente estão incluídas para que as instruções fiquem completas.

Windows

O procedimento a seguir instala o software Easy-RSA 3.x e o usa para gerar os certificados e chaves do servidor e do cliente.

Para gerar os certificados e as chaves de servidor e cliente e carregá-los no ACM
  1. Acesse a página de lançamentos do EasyRSA, baixe o arquivo ZIP para sua versão do Windows e extraia-o.

  2. Abra um prompt de comando e navegue até o local para o qual a pasta EasyRSA-3.x foi extraída.

  3. Execute o comando a seguir para abrir o shell do EasyRSA 3.

    C:\Program Files\EasyRSA-3.x> .\EasyRSA-Start.bat
  4. Inicialize um novo ambiente PKI.

    # ./easyrsa init-pki
  5. Para criar uma nova autoridade de certificação (CA), execute este comando e siga as instruções.

    # ./easyrsa build-ca nopass
  6. Gere o certificado e a chave de servidor.

    # ./easyrsa --san=DNS:server build-server-full server nopass
  7. Gere o certificado e a chave de cliente.

    # ./easyrsa build-client-full client1.domain.tld nopass

    Opcionalmente, você pode repetir essa etapa para cada cliente (usuário final) que exija um certificado e uma chave de cliente.

  8. Saia do shell do EasyRSA 3.

    # exit
  9. Copie os certificados e as chaves de servidor e de cliente para uma pasta personalizada e depois navegue até ela.

    Antes de copiar os certificados e as chaves, crie a pasta personalizada usando o comando mkdir. O exemplo a seguir cria uma pasta personalizada na unidade C:\.

    C:\Program Files\EasyRSA-3.x> mkdir C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\ca.crt C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\issued\server.crt C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\private\server.key C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\issued\client1.domain.tld.crt C:\custom_folder C:\Program Files\EasyRSA-3.x> copy pki\private\client1.domain.tld.key C:\custom_folder C:\Program Files\EasyRSA-3.x> cd C:\custom_folder
  10. Faça upload do certificado e da chave do servidor e do certificado e da chave do cliente no ACM. Certifique-se de fazer upload deles na mesma região em que pretende criar o endpoint do cliente VPN. Os comandos a seguir usam o AWS CLI para carregar os certificados. Para fazer upload dos certificados usando o console do ACM, consulte Importar certificados no Guia do usuário do AWS Certificate Manager .

    aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
    aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt

    Você não precisa necessariamente carregar o certificado do cliente no ACM. Se os certificados de servidor e de cliente tiverem sido emitidos pela mesma autoridade de certificação (CA), você poderá usar o ARN de certificado de servidor tanto para o servidor quanto para o cliente ao criar o endpoint do cliente VPN. Nas etapas acima, a mesma CA foi usada para criar ambos os certificados. Entretanto, as etapas para carregar o certificado do cliente estão incluídas para que as instruções fiquem completas.

Renovar o certificado de servidor

Você pode renovar e reimportar um certificado de servidor que tenha expirado. Dependendo da versão do OpenVPN easy-rsa que você está usando, o procedimento pode variar. Consulte a documentação de renovação e revogação de certificados do Easy-RSA 3 para obter mais detalhes.

Renove seu certificado de servidor
  1. Faça um dos seguintes:

    • Easy-RSA versão 3.1.x

      1. Execute o comando de renovação do certificado.

        $ ./easyrsa renew server nopass
    • Easy-RSA versão 3.2.x

      1. Execute o comando expire.

        $ ./easyrsa expire server
      2. Assine um novo certificado.

        $ ./easyrsa sign-req server server
  2. Crie uma pasta personalizada, copie os novos arquivos para ela e navegue até a pasta.

    $ mkdir ~/custom_folder2 $ cp pki/ca.crt ~/custom_folder2/ $ cp pki/issued/server.crt ~/custom_folder2/ $ cp pki/private/server.key ~/custom_folder2/ $ cd ~/custom_folder2/
  3. Importe os novos arquivos para o ACM. É necessário importá-los na mesma região que o endpoint do Client VPN.

    $ aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt