Configurare una VPN da punto a sito (P2S) in Windows per l'uso con File di Azure

È possibile usare una connessione VPN da punto a sito (P2S) per montare le condivisioni file di Azure tramite SMB dall'esterno di Azure, senza aprire la porta 445. Una connessione VPN da punto a sito è una connessione VPN tra Azure e un singolo client. Per usare una connessione VPN da sito a sito con File di Azure, è necessario configurare una connessione VPN per ogni client che vuole connettersi. Se si hanno molti client che devono connettersi alle condivisioni file di Azure dalla rete locale, è possibile usare una connessione VPN da sito a sito anziché una connessione da punto a sito per ogni client. Per altre informazioni, vedere Configurare una VPN da sito a sito da usare con File di Azure.

È consigliabile leggere Considerazioni sulla rete per l'accesso diretto alla condivisione file di Azure prima di continuare con questo articolo sulle procedure per una descrizione completa delle opzioni di rete disponibili per File di Azure.

L'articolo illustra in dettaglio i passaggi per configurare una VPN da punto a sito in Windows (client Windows e Windows Server) per montare le condivisioni file di Azure direttamente in locale. Se si sta cercando di instradare Sincronizzazione file di Azure traffico tramite una VPN, vedere Configurazione delle impostazioni del proxy e del firewall Sincronizzazione file di Azure.

Si applica a

Tipo di condivisione file SMB NFS
Condivisioni file Standard (GPv2), archiviazione con ridondanza locale/archiviazione con ridondanza della zona Yes No
Condivisioni file Standard (GPv2), archiviazione con ridondanza geografica/archiviazione con ridondanza geografica della zona Yes No
Condivisioni file Premium (FileStorage), archiviazione con ridondanza locale/archiviazione con ridondanza della zona Yes No

Prerequisiti

  • La versione più recente del modulo Azure PowerShell. Vedere Installare il modulo Azure PowerShell.

  • Una condivisione file di Azure che si vuole montare in locale. Le condivisioni file di Azure vengono distribuite all'interno di account di archiviazione, ovvero costrutti di gestione che rappresentano un pool condiviso di archiviazione in cui è possibile distribuire più condivisioni file, nonché altre risorse di archiviazione. Altre informazioni su come distribuire condivisioni file di Azure e account di archiviazione in Creare una condivisione file di Azure.

  • Una rete virtuale con un endpoint privato per l'account di archiviazione che contiene la condivisione file di Azure da montare in locale. Per informazioni su come creare un endpoint privato, vedere Configurazione di endpoint di rete File di Azure.

  • È necessario creare una subnet del gateway nella rete virtuale. Per creare una subnet del gateway, accedere al portale di Azure, passare alla rete virtuale, selezionare Impostazioni > Subnet e quindi selezionare + Subnet gateway. Quando si crea la subnet del gateway, si specifica il numero di indirizzi IP inclusi nella subnet. Il numero di indirizzi IP necessari dipende alla configurazione di gateway VPN che si vuole creare. È consigliabile specificare /27 o superiore (/26, /25 e così via) per consentire indirizzi IP sufficienti per le modifiche future, ad esempio l'aggiunta di un gateway ExpressRoute.

Raccogliere informazioni sull'ambiente

Prima di configurare la VPN da punto a sito, è necessario raccogliere alcune informazioni sull'ambiente.

Per configurare una VPN da punto a sito usando il portale di Azure, è necessario conoscere il nome del gruppo di risorse, il nome della rete virtuale, il nome della subnet del gateway e il nome dell'account di archiviazione.

Creare il certificato radice per l'autenticazione della VPN

Per consentire l'autenticazione delle connessioni VPN dai computer Windows locali per accedere alla rete virtuale, è necessario creare due certificati:

  1. Un certificato radice, che verrà fornito al gateway della macchina virtuale
  2. Un certificato client, che verrà firmato con il certificato radice

È possibile usare un certificato radice generato con una soluzione aziendale oppure generare un certificato autofirmato. Se si usa una soluzione aziendale, acquisire il file di .cer per il certificato radice dell'organizzazione IT.

Se non si usa una soluzione di certificato aziendale, creare un certificato radice autofirmato usando questo script di PowerShell. Il certificato client verrà creato dopo la distribuzione del gateway di rete virtuale. Se possibile, lasciare aperta la sessione di PowerShell in modo che non sia necessario ridefinire le variabili quando si crea il certificato client più avanti in questo articolo.

Importante

Eseguire questo script di PowerShell come amministratore da un computer locale che esegue Windows 10/Windows Server 2016 o versione successiva. Non eseguire lo script da cloud shell o vm in 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 
    } 
}

Distribuire il gateway di rete virtuale

Il gateway di rete virtuale di Azure è il servizio a cui si connetteranno i computer Windows locali. Se non è già stato fatto, è necessario creare una subnet del gateway nella rete virtuale prima di distribuire il gateway di rete virtuale.

La distribuzione di un gateway di rete virtuale richiede due componenti di base:

  1. Un indirizzo IP pubblico che identificherà il gateway ai client ovunque si trovino nel mondo
  2. Certificato radice creato nel passaggio precedente, che verrà usato per autenticare i client

È possibile usare il portale di Azure o Azure PowerShell per distribuire il gateway di rete virtuale. Il completamento della distribuzione può richiedere fino a 45 minuti.

Per distribuire un gateway di rete virtuale usando il portale di Azure, seguire queste istruzioni.

  1. Accedere al portale di Azure.

  2. In Cerca risorse, servizi e documentazione digitare gateway di rete virtuale. Individuare Gateway di rete virtuale nei risultati della ricerca del Marketplace e selezionarlo.

  3. Selezionare + Crea per creare un nuovo gateway di rete virtuale.

  4. Nella scheda Informazioni di base immettere i valori per Dettagli progetto e Dettagli istanza.

    Screenshot showing how to create a virtual network gateway using the Azure portal.

    • Sottoscrizione: selezionare la sottoscrizione da usare nell'elenco a discesa.
    • Gruppo di risorse: questa impostazione viene compilata automaticamente quando si seleziona la rete virtuale in questa pagina.
    • Nome: assegnare un nome al gateway. Il nome del gateway non è uguale al nome della subnet del gateway. ma il nome dell'oggetto gateway da creare.
    • Area: selezionare l'area in cui si vuole creare questa risorsa. L'area del gateway deve essere uguale a quella della rete virtuale.
    • Tipo di gateway: selezionare VPN. I gateway VPN usano il gateway di rete virtuale di tipo VPN.
    • SKU: selezionare lo SKU del gateway che supporta le funzionalità da usare nell'elenco a discesa. Vedere SKU del gateway. Non usare lo SKU Basic perché non supporta l'autenticazione IKEv2.
    • Generazione: selezionare la generazione da usare. È consigliabile usare uno SKU Generation2. Per altre informazioni, vedere SKU del gateway.
    • Rete virtuale: nell'elenco a discesa selezionare la rete virtuale a cui si vuole aggiungere il gateway. Se non è possibile visualizzare la rete virtuale per cui si vuole creare un gateway, assicurarsi di aver selezionato la sottoscrizione e l'area corrette.
    • Subnet: questo campo deve essere disattivato ed elencare il nome della subnet del gateway creata, insieme al relativo intervallo di indirizzi IP. Se invece viene visualizzato un campo Intervallo di indirizzi della subnet del gateway con una casella di testo, non è ancora stata configurata una subnet del gateway (vedere Prerequisiti).
  5. Specificare i valori per l'indirizzo IP pubblico associato al gateway di rete virtuale. L'indirizzo IP pubblico viene assegnato a questo oggetto quando viene creato il gateway di rete virtuale. L'unica volta che l'indirizzo IP pubblico primario cambia è quando il gateway viene eliminato e ricreato. Non cambia tra il ridimensionamento, la reimpostazione o altri aggiornamenti/manutenzione interni.

    Screenshot showing how to specify the public IP address for a virtual network gateway using the Azure portal.

    • Indirizzo IP pubblico: lasciare selezionata l'opzione Crea nuovo .
    • Nome indirizzo IP pubblico: nella casella di testo digitare un nome per l'istanza dell'indirizzo IP pubblico.
    • SKU indirizzo IP pubblico: l'impostazione è selezionata automaticamente.
    • Assegnazione: l'assegnazione viene in genere selezionata automaticamente e può essere dinamica o statica.
    • Abilita la modalità attiva-attiva: selezionare Disabilitato. Abilitare questa impostazione solo se si sta creando una configurazione del gateway attivo-attivo.
    • Configura BGP: selezionare Disabilitato, a meno che la configurazione non richieda specificamente questa impostazione. Se è necessaria questa impostazione, l'ASN predefinito è 65515, anche se questo valore può essere modificato.
  6. Selezionare Rivedi e crea per eseguire la convalida. Al termine della convalida, selezionare Crea per distribuire il gateway di rete virtuale. Il completamento della distribuzione può richiedere fino a 45 minuti.

  7. Al termine della distribuzione, selezionare Vai alla risorsa.

  8. Nel riquadro sinistro selezionare Impostazioni > configurazione da punto a sito e quindi selezionare Configura ora. Verrà visualizzata la pagina di configurazione da punto a sito.

    Screenshot showing how to configure a point-to-site VPN using the Azure portal.

    • Pool di indirizzi: aggiungere l'intervallo di indirizzi IP privato da usare. I client VPN ricevono dinamicamente un indirizzo IP dall'intervallo specificato. La subnet mask minima è a 29 bit per la configurazione attiva/passiva e a 28 bit per la configurazione attiva/attiva.
    • Tipo di tunnel: specificare il tipo di tunnel da usare. I computer che si connettono tramite il client VPN Windows nativo proveranno prima IKEv2. In caso contrario, viene eseguito il fallback a SSTP (se si selezionano sia IKEv2 che SSTP nell'elenco a discesa). Se si seleziona il tipo di tunnel OpenVPN, è possibile connettersi usando un client OpenVPN o il client VPN di Azure.
    • Tipo di autenticazione: specificare il tipo di autenticazione che si vuole usare (in questo caso scegliere Certificato di Azure).
    • Nome certificato radice: nome del file del certificato radice (.cer file).
    • Dati del certificato pubblico: aprire il certificato radice con Blocco note e copiare/incollare i dati del certificato pubblico in questo campo di testo. Se in questo articolo è stato usato lo script di PowerShell per generare un certificato radice autofirmato, si trova in C:\vpn-temp. Assicurarsi di incollare solo il testo compreso tra -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----. Non includere spazi o caratteri aggiuntivi.

    Nota

    Se non viene visualizzato il tipo di tunnel o il tipo di autenticazione, il gateway usa lo SKU Basic. Lo SKU Basic non supporta l'autenticazione IKEv2. Se si vuole usare IKEv2, è necessario eliminare e ricreare il gateway usando uno SKU del gateway diverso.

  9. Selezionare Salva nella parte superiore della pagina per salvare tutte le impostazioni di configurazione e caricare le informazioni sulla chiave pubblica del certificato radice in Azure.

Creare il certificato client

Ogni computer client connesso a una rete virtuale con una connessione da punto a sito deve avere un certificato client installato. Generare il certificato client dal certificato radice e installarlo in ogni computer client. Se non si installa un certificato client valido, l'autenticazione avrà esito negativo quando il client prova a connettersi. È possibile creare un certificato client da un certificato radice generato con una soluzione aziendale oppure creare un certificato client da un certificato radice autofirmato.

Creare un certificato client usando una soluzione aziendale

Se si usa una soluzione aziendale per la creazione di certificati, generare un certificato client con il valore di nome comune nel formato name@yourdomain.com. Usare questo formato anziché il formato nome dominio\nome utente. Verificare che il certificato client sia basato sul modello di certificato utente con Autenticazione client riportato come primo elemento nell'elenco d'uso. Controllare il certificato facendo doppio clic sul certificato client e aprendo Utilizzo chiavi avanzato nella scheda Dettagli.

Creare un certificato client da un certificato radice autofirmato

Se non si usa una soluzione di certificato aziendale, è possibile usare PowerShell per creare un certificato client con l'URI del gateway di rete virtuale. Questo certificato verrà firmato con il certificato radice creato in precedenza. Se si genera un certificato client da un certificato radice autofirmato, viene eseguita l'installazione automatica nel computer usato per generarlo.

Se si vuole installare un certificato client in un altro computer client, esportare il certificato come file con estensione pfx, insieme all'intera catena di certificati. In questo modo, viene creato un file .pfx contenente le informazioni del certificato radice necessarie per l’autenticazione del client. Per esportare il certificato radice autofirmato come file pfx, selezionare il certificato radice e usare gli stessi passaggi descritti in Esportare il certificato client.

Identificare il certificato radice autofirmato

Se si usa la stessa sessione di PowerShell usata per creare il certificato radice autofirmato, è possibile passare direttamente a Generare un certificato client.

In caso contrario, seguire questa procedura per identificare il certificato radice autofirmato installato nel computer.

  1. Ottenere un elenco dei certificati installati nel computer.

    Get-ChildItem -Path 'Cert:\CurrentUser\My'
    
  2. Individuare il nome del soggetto dall'elenco restituito, quindi copiare l'identificazione personale che si trova accanto a esso in un file di testo. Nell'esempio seguente ci sono due certificati. Il nome CN è il nome del certificato radice autofirmato da cui si desidera generare un certificato figlio. In questo caso, è denominato P2SRootCert.

    Thumbprint                                Subject
    ----------                                -------
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Dichiarare una variabile per il certificato radice usando l'identificazione personale del passaggio precedente. Sostituire THUMBPRINT con l'identificazione personale del certificato radice da cui si vuole generare un certificato client.

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

    Ad esempio, usando l'identificazione personale per P2SRootCert nel passaggio precedente, il comando è simile al seguente:

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

Generare un certificato client

Usare il New-AzVpnClientConfiguration cmdlet di PowerShell per generare un certificato client. Se non si usa la stessa sessione di PowerShell usata per creare il certificato radice autofirmato, è necessario identificare il certificato radice autofirmato come descritto nella sezione precedente. Prima di eseguire lo script, sostituire <resource-group-name> con il nome del gruppo di risorse e <vpn-gateway-name> con il nome del gateway di rete virtuale appena distribuito.

Importante

Eseguire questo script di PowerShell come amministratore dal computer Windows locale che si vuole connettere alla condivisione file di Azure. Il computer deve eseguire Windows 10/Windows Server 2016 o versione successiva. Non eseguire lo script da Cloud Shell in Azure. Assicurarsi di accedere all'account Azure prima di eseguire lo 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

Configurare il client VPN

Il gateway di rete virtuale di Azure creerà un pacchetto scaricabile con i file di configurazione necessari per inizializzare la connessione VPN nel computer Windows locale. Il pacchetto di configurazione contiene impostazioni specifiche del gateway VPN creato. Se si apportano modifiche al gateway, ad esempio modificando un tipo di tunnel, un certificato o un tipo di autenticazione, sarà necessario generare un altro pacchetto di configurazione del profilo client VPN e installarlo in ogni client. In caso contrario, i client VPN potrebbero non essere in grado di connettersi.

Si configurerà la connessione VPN usando la funzionalità VPN Always On introdotta in Windows 10/Windows Server 2016. Questo pacchetto contiene anche eseguibili che configureranno il client VPN Windows legacy, se necessario. Questa guida usa VPN Always On anziché il client VPN Windows legacy perché il client VPN Always On consente di connettersi/disconnettersi dalla VPN di Azure senza disporre delle autorizzazioni di amministratore per il computer.

Installare il certificato client

Per installare il certificato client necessario per l'autenticazione nel gateway di rete virtuale, seguire questa procedura nel computer client.

  1. Dopo l'esportazione del certificato client, individuare e copiare il file pfx nel computer client.
  2. Nel computer client, fare doppio clic sul file .pfx per installarlo. Lasciare l'opzione Store Location (Posizione archivio) come Utente corrente e quindi selezionare Avanti.
  3. Nella pagina File da importare non apportare alcuna modifica. Seleziona Avanti.
  4. Nella pagina Protezione chiave privata immettere la password per il certificato o verificare che l'entità di sicurezza sia corretta, quindi selezionare Avanti.
  5. Nella pagina Archivio certificati lasciare il percorso predefinito e quindi selezionare Avanti.
  6. Selezionare Fine. Nell'avviso di sicurezza per l'installazione del certificato selezionare . È possibile selezionare comodamente "Sì" per questo avviso di sicurezza perché è stato generato il certificato.
  7. Il certificato è stato importato correttamente.

Installare il client VPN

Questa sezione illustra come configurare il client VPN nativo che fa parte del sistema operativo Windows per connettersi alla rete virtuale (IKEv2 e SSTP). Questa configurazione non richiede software client aggiuntivo.

Visualizzare i file di configurazione

Nel computer client passare a C:\vpn-temp e aprire la cartella vpnclientconfiguration per visualizzare le sottocartelle seguenti:

  • WindowsAmd64 e WindowsX86, che contengono rispettivamente i pacchetti del programma di installazione a 64 bit e a 32 bit. Il pacchetto di installazione WindowsAmd64 è valido per tutti i client Windows a 64 bit, non solo Amd.
  • Generic, contenente le informazioni generali usate per creare una propria configurazione del client VPN. La cartella Generic è disponibile se nel gateway è stato configurato IKEv2 o SSTP + IKEv2. Se è configurato solo SSTP, la cartella Generic non è presente.

Configurare il profilo client VPN

È possibile usare lo stesso pacchetto di configurazione del client VPN in ogni computer client Windows, a condizione che la versione corrisponda all'architettura del client.

Nota

È necessario disporre dei diritti di Amministrazione istrator nel computer client Windows da cui si desidera connettersi per eseguire il pacchetto del programma di installazione.

  1. Selezionare i file di configurazione del client VPN corrispondenti all'architettura del computer Windows. Per un'architettura del processore a 64 bit, scegliere il pacchetto del VpnClientSetupAmd64 programma di installazione. Per un'architettura del processore a 32 bit, scegliere il pacchetto del VpnClientSetupX86 programma di installazione.

  2. Fare doppio clic sul pacchetto per installarlo. Se viene visualizzato un popup SmartScreen, selezionare Altre informazioni e quindi Esegui comunque.

  3. Connessione alla VPN. Passare a VPN Impostazioni e individuare la connessione VPN creata. È lo stesso nome della rete virtuale. Selezionare Connetti. Potrebbe essere visualizzato un messaggio popup. Selezionare Continua per usare privilegi elevati.

  4. Nella pagina di stato Connessione fare clic su Connetti per avviare la connessione. Se viene visualizzato un Seleziona certificato dello schermo, verificare che il certificato client visualizzato sia quello che si desidera utilizzare per la connessione. In caso contrario, usare la freccia a discesa per selezionare il certificato corretto e quindi selezionare OK.

Montare la condivisione file di Azure

Dopo aver configurato la VPN da punto a sito, è possibile usarla per montare la condivisione file di Azure in un computer locale.

Per montare la condivisione file usando la chiave dell'account di archiviazione, aprire un prompt dei comandi di Windows ed eseguire il comando seguente. Sostituire <YourStorageAccountName>, <FileShareName> e <YourStorageAccountKey> con valori personalizzati. Se Z: è già in uso, sostituirlo con una lettera di unità disponibile. È possibile trovare la chiave dell'account di archiviazione nella portale di Azure passando all'account di archiviazione e selezionando Sicurezza e chiavi di accesso di rete>.

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

Ruotare il certificato radice VPN

Se è necessario ruotare un certificato radice a causa della scadenza o dei nuovi requisiti, è possibile aggiungere un nuovo certificato radice al gateway di rete virtuale esistente senza ridistribuire il gateway di rete virtuale. Dopo aver aggiunto il certificato radice usando lo script seguente, è necessario ricreare il certificato client VPN.

Sostituire <resource-group-name>, <desired-vpn-name-here>e <new-root-cert-name> con i propri valori, quindi eseguire lo 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

Vedi anche