Share via


Configuración de una VPN de punto a sitio (P2S) en Windows para su uso con Azure Files

Puede usar una conexión VPN de punto a sitio (P2S) para montar los recursos compartidos de archivos de Azure a través de SMB desde fuera de Azure, sin necesidad de abrir el puerto 445. Una conexión VPN de punto a sitio es una conexión VPN entre Azure y un cliente individual. Para usar una conexión VPN de punto a sitio con Azure Files, debe configurar una conexión VPN para cada cliente que quiera conectarse. Si tiene muchos clientes que necesitan conectarse a sus recursos compartidos de archivos de Azure desde la red local, puede usar una conexión VPN de sitio a sitio (S2S) en lugar de una conexión de punto a sitio para cada cliente. Para obtener más información, consulte Configuración de una VPN de sitio a sitio para su uso con Azure Files.

Se recomienda encarecidamente que consulte Consideraciones sobre redes para el acceso directo a los recursos compartidos de archivos de Azure antes de continuar con este artículo paso a paso para obtener una descripción completa de las opciones de red disponibles para Azure Files.

En este artículo se detallan los pasos para configurar una VPN de punto a sitio en Windows (cliente de Windows y Windows Server) para montar recursos compartidos de archivos de Azure directamente en el entorno local. Si quiere enrutar el tráfico de Azure File Sync a través de una VPN, consulte Configuración del proxy y el firewall de Azure File Sync.

Se aplica a

Tipo de recurso compartido de archivos SMB NFS
Recursos compartidos de archivos Estándar (GPv2), LRS/ZRS Sí No
Recursos compartidos de archivos Estándar (GPv2), GRS/GZRS Sí No
Recursos compartidos de archivos Premium (FileStorage), LRS/ZRS Sí No

Requisitos previos

  • La versión más reciente del módulo de Azure PowerShell. Consulte Instalación del módulo de Azure PowerShell.

  • Un recurso compartido de archivos de Azure que le gustaría montar en el entorno local. Los recursos compartidos de archivos de Azure se implementan en cuentas de almacenamiento, que son construcciones de administración que representan un grupo compartido de almacenamiento en el que puede implementar varios recursos compartidos de archivos u otros recursos de almacenamiento. Obtenga más información sobre cómo implementar cuentas de almacenamiento y recursos compartidos de archivos de Azure en Creación de un recurso compartido de archivos de Azure.

  • Una red virtual con un punto de conexión privado para la cuenta de almacenamiento que contiene el recurso compartido de archivos de Azure que quiere montar localmente. Para más información sobre cómo crear un punto de conexión privado, consulte Configuración de puntos de conexión de red de Azure Files.

  • Debe crear una subred de puerta de enlace en la red virtual. Para crear una subred de puerta de enlace, inicie sesión en Azure Portal, vaya a la red virtual, seleccione Configuración> Subredes, y después seleccione +Subred de puerta de enlace. Al crear la subred de puerta de enlace, especifique el número de direcciones IP que contiene la subred. El número de direcciones IP que se necesitan depende de la configuración de puerta de enlace de VPN que se desea crear. Es mejor especificar /27 o mayor (/26, /25, etc.) para permitir suficientes direcciones IP para cambios futuros, como agregar una puerta de enlace de ExpressRoute.

Recopilación de información del entorno

Antes de configurar la VPN de punto a sitio, debe recopilar información sobre su entorno.

Para configurar una VPN de punto a sitio mediante Azure Portal, deberá conocer el nombre del grupo de recursos, el nombre de la red virtual, el nombre de la subred de puerta de enlace y el nombre de la cuenta de almacenamiento.

Creación de certificados raíz para la autenticación de VPN

Para que las conexiones VPN desde las máquinas Windows locales se autentiquen para acceder a la red virtual, debe crear dos certificados:

  1. Un certificado raíz, que se proporcionará a la puerta de enlace de máquina virtual
  2. Un certificado de cliente, que se firmará con el certificado raíz

Puede usar un certificado raíz que se generó con una solución empresarial o puede generar un certificado autofirmado. Si usa una solución empresarial, adquiera el archivo .cer para el certificado raíz de la organización de TI.

Si no usa una solución de certificado empresarial, cree un certificado raíz autofirmado mediante este script de PowerShell. Creará el certificado de cliente después de implementar la puerta de enlace de red virtual. Si es posible, deje abierta la sesión de PowerShell para que no necesite volver a definir las variables al crear el certificado de cliente más adelante en este artículo.

Importante

Ejecute este script de PowerShell como administrador desde una máquina local que ejecute Windows 10/Windows Server 2016 o posterior. No ejecute el script desde una máquina virtual o Cloud Shell en Azure.

$rootcertname                = 'CN=P2SRootCert'
$certLocation                = 'Cert:\CurrentUser\My'
$vpnTemp                     = 'C:\vpn-temp'
$exportedencodedrootcertpath = "$vpnTemp\P2SRootCertencoded.cer"
$exportedrootcertpath        = "$vpnTemp\P2SRootCert.cer"

if (-Not (Test-Path -Path $vpnTemp -PathType Container)) {
    New-Item -ItemType Directory -Force -Path $vpnTemp | Out-Null
}

if ($PSVersionTable.PSVersion.Major -ge 6) {
    Import-Module -Name PKI -UseWindowsPowerShell
}

$selfSignedCertParams = @{
    Type              = 'Custom'
    KeySpec           = 'Signature'
    Subject           = $rootcertname
    KeyExportPolicy   = 'Exportable'
    HashAlgorithm     = 'sha256'
    KeyLength         = '2048'
    CertStoreLocation = $certLocation
    KeyUsageProperty  = 'Sign'
    KeyUsage          = 'CertSign'
}
$rootcert = New-SelfSignedCertificate @selfSignedCertParams

Export-Certificate -Cert $rootcert -FilePath $exportedencodedrootcertpath -NoClobber | Out-Null

certutil -encode $exportedencodedrootcertpath $exportedrootcertpath | Out-Null

$rawRootCertificate = Get-Content -Path $exportedrootcertpath

$rootCertificate = ''

foreach ($line in $rawRootCertificate) { 
    if ($line -notlike '*Certificate*') { 
        $rootCertificate += $line 
    } 
}

Implementación de puerta de enlace de red virtual

La puerta de enlace de red virtual de Azure es el servicio al que se conectarán las máquinas Windows locales. Si aún no lo ha hecho, debe crear una subred de puerta de enlace en la red virtual antes de implementar la puerta de enlace de red virtual.

La implementación de una puerta de enlace de red virtual requiere dos componentes básicos:

  1. Una IP pública que identificará la puerta de enlace a los clientes dondequiera que estén en el mundo
  2. El certificado raíz que creó en el paso anterior, que se usará para autenticar a los clientes

Puede usar Azure Portal o Azure PowerShell para implementar la puerta de enlace de red virtual. La implementación puede tardar hasta 45 minutos en completarse.

Para implementar una puerta de enlace de red virtual mediante Azure Portal, siga estas instrucciones.

  1. Inicie sesión en Azure Portal.

  2. En Buscar recursos, servicios y documentos, escriba puertas de enlace de red virtual. Busque Puertas de enlace de red virtual en los resultados de búsqueda de Marketplace y selecciónelo.

  3. Seleccione + Crear para crear una nueva puerta de enlace de red virtual.

  4. En la pestaña Aspectos básicos, rellene los valores de Detalles del proyecto y Detalles de la instancia.

    Captura de pantalla que muestra cómo crear una puerta de enlace de red virtual mediante Azure Portal.

    • Suscripción: seleccione la suscripción que desea usar en la lista desplegable.
    • Grupo de recursos: esta configuración se rellena automáticamente cuando selecciona la red virtual en esta página.
    • Name: Asigne un nombre a la puerta de enlace. Asignar nombre a la puerta de enlace no es lo mismo que asignar nombre a una subred de puerta de enlace. Este es el nombre del objeto de puerta de enlace que va a crear.
    • Región: Seleccione la región en la que quiere crear este recurso. La región de la puerta de enlace debe ser la misma que la red virtual.
    • Tipo de puerta de enlace: Seleccione VPN. Las puertas de enlace VPN usan el tipo de puerta de enlace de red virtual VPN.
    • SKU: seleccione el SKU de puerta de enlace que admita las características que desea usar en la lista desplegable. Consulte SKU de puerta de enlace. No use la SKU básica, ya que no admite la autenticación IKEv2.
    • Generación: seleccione la generación que desea usar. Se recomienda usar una SKU de segunda generación. Consulte SKU de puertas de enlace para más información.
    • Red virtual: En el menú desplegable, seleccione la red virtual a la que quiera agregar esta puerta de enlace. Si no puede ver la red virtual para la que desea crear una puerta de enlace, asegúrese de seleccionar la suscripción y la región correctas.
    • Subred: este campo debería estar atenuado y enumerar el nombre de la subred de la puerta de enlace que ha creado, junto con su intervalo IP de direcciones. Si, en cambio, ve un campo Intervalo de direcciones de subred de puerta de enlace con un cuadro de texto, es que aún no ha configurado una subred de puerta de enlace (consulte Requisitos previos).
  5. Especifique los valores de la dirección IP pública que se asocia a la puerta de enlace de red virtual. La dirección IP pública se asigna a este objeto cuando se crea la puerta de enlace de red virtual. La única vez que la dirección IP pública principal cambia es cuando la puerta de enlace se elimina y se vuelve a crear. No cambiará al modificar el tamaño, restablecer o realizar otro tipo de mantenimiento interno o actualizaciones.

    Captura de pantalla que muestra cómo especificar la dirección IP pública de una puerta de enlace de red virtual mediante Azure Portal.

    • Dirección IP pública: Mantenga la opción Crear nueva seleccionada.
    • Nombre de dirección IP pública: En el cuadro de texto, escriba un nombre para la dirección IP pública.
    • SKU de dirección IP pública: la configuración se selecciona automáticamente.
    • Asignación: por lo general, la asignación se selecciona automáticamente y puede ser dinámica o estática.
    • Habilitar el modo activo/activo: seleccione Deshabilitado. Habilite esta configuración solo si va a crear una configuración de puerta de enlace activa-activa.
    • Configurar BGP: Seleccione Deshabilitado, a menos que su configuración requiera específicamente este valor. Si necesita este valor de configuración, el valor predeterminado del ASN es 65515, aunque esto se puede cambiar.
  6. Seleccione Revisar y crear para ejecutar la validación. Una vez superada la validación, seleccione Crear para implementar la puerta de enlace de red virtual. La implementación puede tardar hasta 45 minutos en completarse.

  7. Una vez finalizada la implementación, seleccione Ir al recurso.

  8. En el panel izquierdo, seleccione Configuración> Configuración de punto a sitio y después seleccione Configurar ahora. Debería ver la página configuración de punto a sitio.

    Captura de pantalla que muestra cómo configurar una VPN de punto a sitio mediante Azure Portal.

    • Grupo de direcciones: agregue el intervalo de direcciones IP privadas que quiera usar. Los clientes VPN reciben de forma dinámica una dirección IP del intervalo que especifique. La máscara de subred mínima es de 29 bits para la configuración activa/pasiva, y de 28 bits para la configuración activa/activa.
    • Tipo de túnel: especifique el tipo de túnel que quiere usar. Los equipos que se conectan a través del cliente VPN nativo de Windows probarán primero IKEv2. Si eso no conecta, vuelven a SSTP (si selecciona tanto IKEv2 como SSTP en la lista desplegable). Si selecciona el tipo de túnel OpenVPN, puede conectarse mediante un cliente OpenVPN o el cliente VPN de Azure.
    • Tipo de autenticación: especifique el tipo de autenticación que desea usar (en este caso, elija Certificado de Azure).
    • Nombre del certificado raíz: el nombre de archivo del certificado raíz (archivo.cer).
    • Datos de certificado público: abra el certificado raíz con el Bloc de notas y copie o pegue los datos del certificado público en este campo de texto. Si usó el script de PowerShell en este artículo para generar un certificado raíz autofirmado, se ubicará en C:\vpn-temp. Asegúrese de pegar solo el texto que está entre -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----. No incluya espacios ni caracteres adicionales.

    Nota:

    Si no ve el tipo de túnel o el tipo de autenticación, la puerta de enlace usa la SKU básica. La SKU básica no admite la autenticación de IKEv2. Si quiere usar IKEv2, debe eliminar y volver a crear la puerta de enlace con una SKU de puerta de enlace diferente.

  9. Seleccione Guardar en la parte superior de la página para guardar todas las opciones de configuración y cargar la información de clave pública del certificado raíz en Azure.

Creación del certificado de cliente

Cada equipo cliente que se conecta a una red virtual con una conexión de punto a sitio debe tener instalado un certificado de cliente. Genere el certificado de cliente a partir del certificado raíz e instálelo en cada equipo cliente. Si no instala ningún certificado de cliente válido, la autenticación no podrá realizarse cuando el cliente trate de conectarse. Puede crear un certificado de cliente a partir de un certificado raíz que se generó con una solución empresarial o puede crear un certificado de cliente a partir de un certificado raíz autofirmado.

Creación de un certificado de cliente mediante una solución empresarial

Si usa una solución de certificación de empresa, genere un certificado de cliente con el formato de valor de nombre común name@yourdomain.com. Use este formato en lugar de domain name\username. Asegúrese de que el certificado de cliente se base en la plantilla de certificado de usuario que tenga Autenticación de cliente como primer elemento de la lista de usuarios. Para comprobar el certificado, haga doble clic en él y vea Uso mejorado de clave en la pestaña Detalles.

Creación de un certificado de cliente a partir de un certificado raíz autofirmado

Si no usa una solución de certificado empresarial, puede usar PowerShell para crear un certificado de cliente con el URI de la puerta de enlace de red virtual. Este certificado se firmará con el certificado raíz que creó anteriormente. Si genera un certificado de cliente desde un certificado raíz autofirmado, este se instala automáticamente en el equipo que utilizó para generarlo.

Si desea instalar un certificado de cliente en otro equipo cliente, exporte el certificado como un archivo .pfx, junto con toda la cadena de certificados. De esta forma, creará un archivo .pfx que contiene la información del certificado raíz necesaria para que el cliente se autentique. Para exportar el certificado raíz autofirmado como archivo .pfx, seleccione el certificado raíz y use los mismos pasos descritos en Exportación del certificado de cliente.

Identificación del certificado raíz autofirmado

Si usa la misma sesión de PowerShell que usó para crear el certificado raíz autofirmado, puede ir directamente a Generar un certificado de cliente.

Si no es así, siga estos pasos para identificar el certificado raíz autofirmado instalado en el equipo.

  1. Obtenga una lista de los certificados instalados en el equipo.

    Get-ChildItem -Path 'Cert:\CurrentUser\My'
    
  2. Busque el nombre del firmante de la lista devuelta y, luego, copie la huella digital que se encuentra junto a él en un archivo de texto. En el ejemplo siguiente, hay dos certificados. El nombre CN es el nombre del certificado raíz autofirmado a partir del que va a generar un certificado secundario. En este caso, se denomina P2SRootCert.

    Thumbprint                                Subject
    ----------                                -------
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Declare una variable para el certificado raíz con la huella digital del paso anterior. Reemplace THUMBPRINT por la huella digital del certificado raíz desde el que desea generar un certificado de cliente.

    $rootcert = Get-ChildItem -Path 'Cert:\CurrentUser\My\<THUMBPRINT>'
    

    Por ejemplo, con la huella digital de P2SRootCert en el paso anterior, el comando tiene el siguiente aspecto:

    $rootcert = Get-ChildItem -Path 'Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655'
    

Generación de un certificado de cliente

Use el cmdlet de PowerShell New-AzVpnClientConfiguration para generar un certificado de cliente. Si no usa la misma sesión de PowerShell que usó para crear el certificado raíz autofirmado, deberá identificar el certificado raíz autofirmado como se describe en la sección anterior. Antes de ejecutar el script, reemplace <resource-group-name> por el nombre del grupo de recursos y <vpn-gateway-name> por el nombre de la puerta de enlace de red virtual que acaba de implementar.

Importante

Ejecute este script de PowerShell como administrador desde la máquina Windows local que desea conectar al recurso compartido de archivos de Azure. El equipo debe ejecutar Windows 10/Windows Server 2016 o posterior. No ejecute el script desde Cloud Shell en Azure. Asegúrese de iniciar sesión en su cuenta de Azure antes de ejecutar el script (Connect-AzAccount).

$clientcertpassword = '<enter-your-password>'
$resourceGroupName  = '<resource-group-name>'
$vpnName            = '<vpn-gateway-name>'
$vpnTemp            = 'C:\vpn-temp'
$certLocation       = 'Cert:\CurrentUser\My'

$vpnClientConfigParams = @{
    ResourceGroupName    = $resourceGroupName
    Name                 = $vpnName
    AuthenticationMethod = 'EAPTLS'
}
$vpnClientConfiguration = New-AzVpnClientConfiguration @vpnClientConfigParams

$webRequestParams = @{
    Uri = $vpnClientConfiguration.VpnProfileSASUrl
    OutFile = "$vpnTemp\vpnclientconfiguration.zip"
}
Invoke-WebRequest @webRequestParams

$expandArchiveParams = @{
    Path            = "$vpnTemp\vpnclientconfiguration.zip"
    DestinationPath = "$vpnTemp\vpnclientconfiguration"
}
Expand-Archive @expandArchiveParams

$vpnGeneric = "$vpnTemp\vpnclientconfiguration\Generic"
$vpnProfile = ([xml](Get-Content -Path "$vpnGeneric\VpnSettings.xml")).VpnProfile

$exportedclientcertpath = "$vpnTemp\P2SClientCert.pfx"
$clientcertname         = "CN=$($vpnProfile.VpnServer)"

$selfSignedCertParams = @{
    Type              = 'Custom'
    DnsName           = $vpnProfile.VpnServer
    KeySpec           = 'Signature'
    Subject           = $clientcertname
    KeyExportPolicy   = 'Exportable'
    HashAlgorithm     = 'sha256'
    KeyLength         = 2048
    CertStoreLocation = $certLocation
    Signer            = $rootcert
    TextExtension     = @('2.5.29.37={text}1.3.6.1.5.5.7.3.2')
}
$clientcert = New-SelfSignedCertificate @selfSignedCertParams

$mypwd = ConvertTo-SecureString -String $clientcertpassword -Force -AsPlainText

Export-PfxCertificate -FilePath $exportedclientcertpath -Password $mypwd -Cert $clientcert |
    Out-Null

Configuración del cliente VPN

La puerta de enlace de red virtual de Azure creará un paquete descargable con los archivos de configuración necesarios para inicializar la conexión VPN en la máquina Windows local. El paquete de configuración contiene la configuración específica de la puerta de enlace de VPN que ha creado. Si realiza cambios en la puerta de enlace, como cambiar un tipo de túnel, un certificado o un tipo de autenticación, deberá generar otro paquete de configuración de perfil de cliente VPN e instalarlo en cada cliente. De lo contrario, es posible que los clientes VPN no puedan conectarse.

Configurará la conexión VPN con la característica Always On VPN incorporada en Windows 10 y Windows Server 2016. Este paquete también contiene archivos ejecutables que configurarán el cliente VPN de Windows heredado, si lo desea. En esta guía se usa Always On para VPN en lugar del cliente VPN heredado de Windows, ya que el cliente VPN de Always On le permite conectarse o desconectarse de la VPN de Azure sin tener permisos de administrador en la máquina.

Instalación del certificado de cliente

Para instalar el certificado de cliente necesario para la autenticación en la puerta de enlace de red virtual, siga estos pasos en el equipo cliente.

  1. Una vez que se exporte el certificado de cliente, busque y copie el archivo .pfx en el equipo cliente.
  2. En el equipo cliente, haga doble clic en el archivo .pfx para instalarlo. Deje Ubicación del almacén como Usuario actual y seleccione Siguiente.
  3. En la página File to import (Archivo para importar), no haga ningún cambio. Seleccione Siguiente.
  4. En la página Protección de clave privada, escriba la contraseña del certificado o compruebe que la entidad de seguridad sea correcta y seleccione Siguiente.
  5. En la página Almacén de certificados, deje la ubicación predeterminada y seleccione Siguiente.
  6. Seleccione Finalizar. En la advertencia de seguridad para la instalación de certificados, seleccione . Puede seleccionar con total tranquilidad el valor "Sí" en esta advertencia de seguridad, ya que ha generado el certificado.
  7. El certificado se importó correctamente.

Instalación del cliente VPN

Esta sección le ayuda a configurar el cliente VPN nativo que forma parte del sistema operativo Windows para conectarse a la red virtual (IKEv2 y SSTP). Esta configuración no requiere software cliente adicional.

Visualización de los archivos de configuración

En el equipo cliente, vaya a C:\vpn-temp y abra la carpeta vpnclientconfiguration para ver las subcarpetas siguientes:

  • WindowsAmd64 y WindowsX86, que contienen los paquetes del instalador de Windows de 64 y 32 bits, respectivamente. El paquete del instalador WindowsAmd64 es para todos los clientes de Windows de 64 bits, no solo de AMD.
  • La carpeta Genérico contiene información general que usará para crear su propia configuración de cliente VPN, La carpeta Genérico se proporciona si se ha configurado la opción IKEv2 o SSTP + IKEv2 en la puerta de enlace. Si solo se ha configurado SSTP, la carpeta Genérico no aparece.

Configuración del perfil del cliente VPN

Puede utilizar el mismo paquete de configuración de cliente VPN en todos los equipos cliente Windows, siempre que la versión coincida con la arquitectura del cliente.

Nota:

Debe tener derechos de administrador en el equipo cliente windows desde el que desea conectarse para ejecutar el paquete del instalador.

  1. Seleccione los archivos de configuración de cliente VPN que correspondan a la arquitectura del equipo Windows. Para una arquitectura de procesador de 64 bits, elija el paquete del instalador de VpnClientSetupAmd64. Para una arquitectura de procesador de 32 bits, elija el paquete del instalador de VpnClientSetupX86.

  2. Haga doble clic en el paquete para instalarlo. Si ve una ventana emergente de SmartScreen, seleccione Más información y, después, Ejecutar de todas formas.

  3. Conéctese a la VPN. Vaya a Configuración de VPN y busque la conexión VPN que creó. Tiene el mismo nombre que su red virtual. Seleccione Conectar. Es posible que aparezca un mensaje emergente. Seleccione Continuar para usar privilegios elevados.

  4. En la página Estado de conexión, seleccione Conectar para iniciar la conexión. Si ve una pantalla para Seleccionar certificado , compruebe que el certificado de cliente que se muestra es el que desea utilizar para conectarse. Si no es así, use la flecha de lista desplegable para seleccionar el certificado correcto y, luego, seleccione Aceptar.

Montaje de un recurso compartido de archivos de Azure

Ahora que ha configurado la VPN de punto a sitio, puede usarla para montar el recurso compartido de archivos de Azure en una máquina local.

Para montar el recurso compartido de archivos mediante la clave de la cuenta de almacenamiento, abra un símbolo del sistema de Windows y ejecute el siguiente comando. Reemplace <YourStorageAccountName>, <FileShareName> y <YourStorageAccountKey> con sus propios valores. Si Z ya está en uso, reemplácelo por una letra de unidad disponible. Para encontrar la clave de la cuenta de almacenamiento en Azure Portal, vaya a la cuenta de almacenamiento y seleccione Seguridad y redes>Claves de acceso.

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>

Rotación del certificado raíz de VPN

Si es necesario rotar un certificado raíz debido a la expiración o a nuevos requisitos, puede agregar un nuevo certificado raíz a la puerta de enlace de red virtual existente sin necesidad de volver a implementar la puerta de enlace de red virtual. Después de agregar el certificado raíz mediante el siguiente script, deberá volver a crear el certificado de cliente VPN.

Reemplace <resource-group-name>, <desired-vpn-name-here> y <new-root-cert-name> por sus propios valores y después ejecute el script.

#Creating the new Root Certificate
$ResourceGroupName           = '<resource-group-name>'
$vpnName                     = '<desired-vpn-name-here>'
$NewRootCertName             = '<new-root-cert-name>'
$rootcertname                = "CN=$NewRootCertName"
$certLocation                = 'Cert:\CurrentUser\My'
$date                        = Get-Date -Format 'MM_yyyy'
$vpnTemp                     = "C:\vpn-temp_$date"
$exportedencodedrootcertpath = "$vpnTemp\P2SRootCertencoded.cer"
$exportedrootcertpath        = "$vpnTemp\P2SRootCert.cer"

if (-Not (Test-Path -Path $vpnTemp -PathType Container)) {
    New-Item -ItemType Directory -Force -Path $vpnTemp | Out-Null
}

$selfSignedCertParams = @{
    Type              = 'Custom'
    KeySpec           = 'Signature'
    Subject           = $rootcertname
    KeyExportPolicy   = 'Exportable'
    HashAlgorithm     = 'sha256'
    KeyLength         = 2048
    CertStoreLocation = $certLocation
    KeyUsageProperty  = 'Sign'
    KeyUsage          = 'CertSign'
}
$rootcert = New-SelfSignedCertificate @selfSignedCertParams

$exportCertParams = @{
    Cert      = $rootcert
    FilePath  = $exportedencodedrootcertpath
    NoClobber = $true
}
Export-Certificate @exportCertParams | Out-Null

certutil -encode $exportedencodedrootcertpath $exportedrootcertpath | Out-Null

$rawRootCertificate = Get-Content -Path $exportedrootcertpath

$rootCertificate = ''

foreach($line in $rawRootCertificate) { 
    if ($line -notlike '*Certificate*') { 
        $rootCertificate += $line 
    } 
}

#Fetching gateway details and adding the newly created Root Certificate.
$gateway = Get-AzVirtualNetworkGateway -Name $vpnName -ResourceGroupName $ResourceGroupName

$vpnClientRootCertParams = @{
    PublicCertData               = $rootCertificate
    ResourceGroupName            = $ResourceGroupName
    VirtualNetworkGatewayName    = $gateway
    VpnClientRootCertificateName = $NewRootCertName
}
Add-AzVpnClientRootCertificate @vpnClientRootCertParams

Consulte también