Generación y exportación de certificados: Linux: OpenSSL

Las conexiones de punto a sitio (P2S) de VPN Gateway se pueden configurar para usar la autenticación de certificados. La clave pública del certificado raíz se carga en Azure y cada cliente VPN debe tener los archivos de certificado adecuados instalados localmente para poder conectarse. Este artículo le ayuda a crear un certificado raíz autofirmado y a generar certificados de cliente mediante OpenSSL. Para más información, consulte Configuración de la conexión de punto a sitio: Autenticación de certificados.

Requisitos previos

Para usar este artículo, debe tener un equipo que ejecute OpenSSL.

Certificado raíz autofirmado

Esta sección le ayuda a generar un certificado raíz autofirmado. Después de generar el certificado, exporta el archivo de datos de clave pública del certificado raíz.

  1. El ejemplo siguiente le ayuda a generar el certificado raíz autofirmado.

    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 los datos públicos del certificado raíz autofirmado en formato base64. Es el formato compatible con Azure. Cargue este certificado en Azure como parte de los pasos de configuración de P2S.

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

Certificados de cliente

En esta sección, generará el certificado de usuario (certificado de cliente). Los archivos de certificado se generan en el directorio local en el que se ejecutan los comandos. Puede usar el mismo certificado de cliente en cada equipo cliente o generar certificados específicos de cada cliente. Es fundamental que el certificado de cliente esté firmado por el certificado raíz.

  1. Para generar un certificado de cliente, use los ejemplos siguientes.

    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 comprobar el certificado de cliente, use el ejemplo siguiente.

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

Pasos siguientes

Para continuar con los pasos de configuración, consulte Autenticación de certificados de punto a sitio.