Gerar e exportar certificados - Linux - OpenSSL

As conexões ponto a site (P2S) do Gateway de VPN podem ser configuradas para usar autenticação de certificado. A chave pública do certificado raiz é carregada no Azure e cada cliente VPN deve ter os arquivos de certificado apropriados instalados localmente para se conectar. Esse artigo ajuda você a criar um certificado raiz autoassinado e a gerar certificados de cliente usando OpenSSL. Para obter mais informações, consulte Configuração ponto a site – autenticação de certificado.

Pré-requisitos

Para usar este artigo, você deve ter um computador executando OpenSSL.

Certificado raiz autoassinado

Essa seção ajuda a gerar um certificado raiz autoassinado. Depois de gerar o certificado, exporte o arquivo de dados de chave pública do certificado raiz.

  1. O exemplo a seguir ajuda a gerar o certificado raiz autoassinado.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Imprima os dados públicos do certificado raiz autoassinado no formato base64. Esse é o formato suportado pelo Azure. Carregue esse certificado no Azure como parte das etapas de configuração P2S.

    openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
    

Certificados do cliente

Nessa seção, você gera o certificado do usuário (certificado do cliente). Os arquivos de certificado são gerados no diretório local no qual você executa os comandos. Você pode usar o mesmo certificado de cliente em cada computador cliente ou gerar certificados específicos para cada cliente. É crucial que o certificado do cliente seja assinado pelo certificado raiz.

  1. Para gerar um certificado de cliente, use os exemplos a seguir.

    export PASSWORD="password"
    export USERNAME=$(hostnamectl --static)
    
    # Generate a private key
    openssl genrsa -out "${USERNAME}Key.pem" 2048
    
    # Generate a CSR (Certificate Sign Request)
    openssl req -new -key "${USERNAME}Key.pem" -out "${USERNAME}Req.pem" -subj "/CN=${USERNAME}"
    
    # Sign the CSR using the CA certificate and CA key
    openssl x509 -req -days 365 -in "${USERNAME}Req.pem" -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out "${USERNAME}Cert.pem" -extfile <(echo -e "subjectAltName=DNS:${USERNAME}\nextendedKeyUsage=clientAuth")
    
  2. Para verificar o certificado do cliente, use o exemplo a seguir.

    openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
    

Próximas etapas

Para continuar as etapas de configuração, veja Autenticação de certificado ponto a site.