Compartir a través de


User VPN - Generate and export certificates - Linux - OpenSSL

Este artículo le ayuda a crear un certificado raíz autofirmado y a generar el certificado de cliente .pem mediante OpenSSL. Si en cambio necesita archivos .pfx y .cer, consulte las instrucciones de Windows PowerShell. To upload the self-signed certificate to Azure, see the User VPN configuration steps.

Prerrequisitos

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.

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

Certificados de cliente

Nota:

Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación descrito en este procedimiento requiere un grado muy alto de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.

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 tenga la firma del 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