Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda en punkt-till-plats-VPN-anslutning (P2S) för att montera dina Azure-filresurser via SMB utanför Azure, utan att öppna port 445. En punkt-till-plats-VPN-anslutning är en VPN-anslutning mellan Azure och en enskild klient. Om du vill använda en P2S VPN-anslutning med Azure Files måste du konfigurera en VPN-anslutning för varje klient som vill ansluta. Om du har många klienter som behöver ansluta till dina Azure-filresurser från ditt lokala nätverk kan du använda en VPN-anslutning från plats till plats (S2S) i stället för en punkt-till-plats-anslutning för varje klient. Mer information finns i Konfigurera en plats-till-plats-VPN för användning med Azure Files.
Vi rekommenderar starkt att du läser Nätverksöverväganden för direkt åtkomst till Azure-filresurser innan du fortsätter med den här artikeln för en fullständig diskussion om de nätverksalternativ som är tillgängliga för Azure Files.
Artikeln beskriver stegen för att konfigurera en punkt-till-plats-VPN på Windows (Windows-klient och Windows Server) för att montera Azure-filresurser direkt lokalt. Om du vill dirigera Azure File Sync-trafik via ett VPN kan du läsa konfigurera Proxy- och brandväggsinställningar för Azure File Sync.
Applies to
Hanteringsmodell | Faktureringsmodell | Medieklass | Redundancy | SMB | NFS |
---|---|---|---|---|---|
Microsoft.Storage | Provisioned v2 | HDD (standard) | Local (LRS) |
![]() |
![]() |
Microsoft.Storage | Provisioned v2 | HDD (standard) | Zone (ZRS) |
![]() |
![]() |
Microsoft.Storage | Provisioned v2 | HDD (standard) | Geo (GRS) |
![]() |
![]() |
Microsoft.Storage | Provisioned v2 | HDD (standard) | GeoZone (GZRS) |
![]() |
![]() |
Microsoft.Storage | Provisioned v1 | SSD (hög kvalitet) | Local (LRS) |
![]() |
![]() |
Microsoft.Storage | Provisioned v1 | SSD (hög kvalitet) | Zone (ZRS) |
![]() |
![]() |
Microsoft.Storage | Pay-as-you-go | HDD (standard) | Local (LRS) |
![]() |
![]() |
Microsoft.Storage | Pay-as-you-go | HDD (standard) | Zone (ZRS) |
![]() |
![]() |
Microsoft.Storage | Pay-as-you-go | HDD (standard) | Geo (GRS) |
![]() |
![]() |
Microsoft.Storage | Pay-as-you-go | HDD (standard) | GeoZone (GZRS) |
![]() |
![]() |
Förutsättningar
Den senaste versionen av Azure PowerShell-modulen. Se Installera Azure PowerShell-modulen.
En Azure-fildelning som du vill montera lokalt. Azure-filresurser distribueras i lagringskonton, som är hanteringskonstruktioner som representerar en delad lagringspool där du kan distribuera flera filresurser samt andra lagringsresurser. Läs mer om hur du distribuerar Azure-filresurser och lagringskonton i Skapa en Azure-filresurs.
Ett virtuellt nätverk med en privat slutpunkt för lagringskontot som innehåller den Azure-filresurs som du vill montera lokalt. Information om hur du skapar en privat slutpunkt finns i Konfigurera Azure Files-nätverksslutpunkter.
Du måste skapa ett gateway-undernät i det virtuella nätverket. Om du vill skapa ett gateway-undernät loggar du in på Azure Portal, navigerar till det virtuella nätverket, väljer > och väljer sedan + Gateway-undernät. När du skapar gatewayundernätet anger du det antal IP-adresser som undernätet innehåller. Hur många IP-adresser som behövs beror på vilken konfiguration av VPN-gatewayen som du vill skapa. Det är bäst att ange /27 eller större (/26, /25 osv.) för att tillåta tillräckligt med IP-adresser för framtida ändringar, till exempel att lägga till en ExpressRoute-gateway.
Samla in miljöinformation
Innan du konfigurerar punkt-till-plats-VPN måste du samla in viss information om din miljö.
För att kunna konfigurera ett punkt-till-plats-VPN med hjälp av Azure Portal måste du känna till resursgruppens namn, namn på virtuellt nätverk, gatewayundernätsnamn och lagringskontonamn.
Skapa rotcertifikat för VPN-autentisering
För att VPN-anslutningar från dina lokala Windows-datorer ska kunna autentiseras för att få åtkomst till ditt virtuella nätverk måste du skapa två certifikat:
- Ett rotcertifikat som kommer att tillhandahållas till den virtuella datorgatewayen
- Ett klientcertifikat som kommer att signeras med rotcertifikatet
Du kan antingen använda ett rotcertifikat som har genererats med en företagslösning eller generera ett självsignerat certifikat. Om du använder en företagslösning hämtar du .cer-filen för rotcertifikatet från IT-organisationen.
Om du inte använder en företagscertifikatlösning skapar du ett självsignerat rotcertifikat med det här PowerShell-skriptet. Du skapar klientcertifikatet när du har distribuerat den virtuella nätverksgatewayen. Om möjligt lämnar du PowerShell-sessionen öppen så att du inte behöver omdefiniera variabler när du skapar klientcertifikatet senare i den här artikeln.
Viktigt!
Kör det här PowerShell-skriptet som administratör från en lokal dator som kör Windows 10/Windows Server 2016 eller senare. Kör inte skriptet från ett Cloud Shell eller en virtuell dator i 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
}
}
Distribuera en virtuell nätverksgateway
Den virtuella Azure-nätverksgatewayen är den tjänst som dina lokala Windows-datorer ansluter till. Om du inte redan har gjort det måste du skapa ett gateway-undernät i det virtuella nätverket innan du distribuerar den virtuella nätverksgatewayen.
För att distribuera en virtuell nätverksgateway krävs två grundläggande komponenter:
- En offentlig IP-adress som identifierar gatewayen till dina klienter var de än befinner sig i världen
- Rotcertifikatet som du skapade i föregående steg, som ska användas för att autentisera dina klienter
Du kan använda Azure Portal eller Azure PowerShell för att distribuera den virtuella nätverksgatewayen. Distributionen kan ta upp till 45 minuter att slutföra.
Följ dessa instruktioner om du vill distribuera en virtuell nätverksgateway med hjälp av Azure Portal.
Logga in på Azure-portalen.
I Sök resurser, tjänster och dokument skriver du virtuella nätverksgatewayer. Leta upp virtuella nätverksgatewayer i Marketplace-sökresultaten och välj den.
Välj + Skapa för att skapa en ny virtuell nätverksgateway.
På fliken Grundläggande fyller du i värdena för projektinformation och instansinformation.
- Prenumeration: Välj den prenumeration som du vill använda i listrutan.
- Resursgrupp: Den här inställningen fylls i automatiskt när du väljer ditt virtuella nätverk på den här sidan.
- Namn: namnge din gateway. Att namnge din gateway är inte detsamma som att namnge ett gatewayundernät. Det är namnet på gatewayobjektet som du skapar.
- Region: Välj den region där du vill skapa den här resursen. Gatewayens region måste vara samma som det virtuella nätverket.
- Gatewaytyp: välj VPN. En VPN-gateway använder VPN som virtuell nätverksgateway.
- SKU: Välj den gateway-SKU som stöder de funktioner som du vill använda i listrutan. Se Gateway-artikelnr. Använd inte Basic SKU eftersom den inte stöder IKEv2-autentisering.
- Generation: Välj den generation som du vill använda. Vi rekommenderar att du använder en Generation2 SKU. Se Gateway SKU:er för mer information.
- Virtuellt nätverk: I listrutan väljer du det virtuella nätverk som du vill lägga till den här gatewayen till. Om du inte kan se det virtuella nätverk som du vill skapa en gateway för kontrollerar du att du har valt rätt prenumeration och region.
- Undernät: Det här fältet ska vara nedtonat och visa namnet på gatewayundernätet som du skapade, tillsammans med dess IP-adressintervall. Om du i stället ser ett fält för gateway-undernätsadressområde med en textruta har du ännu inte konfigurerat ett gatewayundernät (se Förutsättningar.)
Ange värdena för den offentliga IP-adress som associeras med den virtuella nätverksgatewayen. Den offentliga IP-adressen tilldelas det här objektet när den virtuella nätverksgatewayen skapas. Den enda gången som den primära offentliga IP-adressen ändras är när gatewayen tas bort och återskapas. It doesn't change across resizing, resetting, or other internal maintenance/upgrades.
- Offentlig IP-adress: Låt Skapa ny vara markerad.
- Namn på offentlig IP-adress: I textrutan skriver du ett namn för din offentliga IP-adressinstans.
- SKU för offentlig IP-adress: Inställningen är automatiskt vald.
- Tilldelning: Tilldelningen är vanligtvis automatiskt markerad och kan vara dynamisk eller statisk.
- Enable active-active mode: Select Disabled. Aktivera endast den här inställningen om du skapar en aktiv-aktiv gateway-konfiguration.
- Konfigurera BGP: Välj Inaktiverad, såvida inte konfigurationen specifikt kräver den här inställningen. Om du behöver den här inställningen är standard-ASN 65515, även om det här värdet kan ändras.
Select Review + create to run validation. När valideringen har godkänts väljer du Skapa för att distribuera den virtuella nätverksgatewayen. Distributionen kan ta upp till 45 minuter att slutföra.
När distributionen är klar väljer du Gå till resurs.
I tjänstmenyn under Inställningar väljer du Punkt-till-plats-konfiguration och sedan Konfigurera nu. You should see the Point-to-site configuration page.
- Adresspool: Lägg till det privata IP-adressintervall som du vill använda. VPN-klienter tar dynamiskt emot en IP-adress från intervallet som du anger. Den minsta nätmasken är 29 bitar för aktiv/passiv och 28 bitar för aktiv/aktiv konfiguration.
- Tunneltyp: Ange den tunneltyp som du vill använda. Datorer som ansluter via den interna Windows VPN-klienten provar IKEv2 först. Om det inte ansluter återgår de till SSTP (om du väljer både IKEv2 och SSTP i listrutan). Om du väljer tunneltypen OpenVPN kan du ansluta med en OpenVPN-klient eller Azure VPN-klienten.
- Autentiseringstyp: Ange den autentiseringstyp som du vill använda (i det här fallet väljer du Azure-certifikat).
- Rotcertifikatnamn: Rotcertifikatets filnamn (.cer fil).
-
Offentliga certifikatdata: Öppna rotcertifikatet med Anteckningsblock och kopiera och klistra in de offentliga certifikatdata i det här textfältet. Om du använde PowerShell-skriptet i den här artikeln för att generera ett självsignerat rotcertifikat finns det i
C:\vpn-temp
. Klistra bara in texten mellan -----BEGIN CERTIFICATE----- och -----END CERTIFICATE-----. Don't include any additional spaces or characters.
Anteckning
If you don't see tunnel type or authentication type, your gateway is using the Basic SKU. Basic SKU stöder inte IKEv2-autentisering. Om du vill använda IKEv2 måste du ta bort och återskapa gatewayen med en annan gateway-SKU.
Välj Spara överst på sidan för att spara alla konfigurationsinställningar och ladda upp den offentliga nyckelinformationen för rotcertifikatet till Azure.
Skapa klientcertifikat
Varje klientdator som du ansluter till ett virtuellt nätverk med en punkt-till-plats-anslutning måste ha ett klientcertifikat installerat. Du genererar klientcertifikatet från rotcertifikatet och installerar det på varje klientdator. Om du inte installerar ett giltigt klientcertifikat misslyckas autentiseringen när klienten försöker ansluta. Du kan antingen skapa ett klientcertifikat från ett rotcertifikat som har genererats med en företagslösning eller skapa ett klientcertifikat från ett självsignerat rotcertifikat.
Skapa klientcertifikat med hjälp av en företagslösning
Om du använder en lösning för företagscertifikat genererar du ett klientcertifikat med det allmänna namnvärdesformatet name@yourdomain.com. Använd det här formatet i stället för formatet domännamn\användarnamn. Se till att klientcertifikatet baseras på en användarcertifikatmall där Klientautentisering är den första posten i användningslistan. Du kan kontrollera certifikatet genom att dubbelklicka på det och visa Förbättrad nyckelanvändning på fliken Information.
Skapa klientcertifikat från ett självsignerat rotcertifikat
Om du inte använder en företagscertifikatlösning kan du använda PowerShell för att skapa ett klientcertifikat med URI:n för den virtuella nätverksgatewayen. Det här certifikatet kommer att signeras med rotcertifikatet som du skapade tidigare. När du skapar ett klientcertifikat från ett självsignerat rotcertifikat installeras det automatiskt på den dator som du använde för att skapa det.
Om du vill installera ett klientcertifikat på en annan klientdator exporterar du certifikatet som en .pfx-fil, tillsammans med hela certifikatkedjan. Då skapas en .pfx-fil som innehåller den rotcertifikatinformation som krävs för att autentisera klienten. Om du vill exportera det självsignerade rotcertifikatet som en .pfx väljer du rotcertifikatet och använder samma steg som beskrivs i Exportera klientcertifikatet.
Identifiera det självsignerade rotcertifikatet
Om du använder samma PowerShell-session som du använde för att skapa ditt självsignerade rotcertifikat kan du gå vidare till Generera ett klientcertifikat.
Annars kan du använda följande steg för att identifiera det självsignerade rotcertifikatet som är installerat på datorn.
Hämta en lista över de certifikat som är installerade på datorn.
Get-ChildItem -Path 'Cert:\CurrentUser\My'
Leta upp ämnesnamnet från den returnerade listan och kopiera sedan tumavtrycket som finns bredvid det till en textfil. I följande exempel finns det två certifikat. The CN name is the name of the self-signed root certificate from which you want to generate a child certificate. I det här fallet kallas det P2SRootCert.
Thumbprint Subject ---------- ------- AED812AD883826FF76B4D1D5A77B3C08EFA79F3F CN=P2SChildCert4 7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655 CN=P2SRootCert
Deklarera en variabel för rotcertifikatet med tumavtrycket från föregående steg. Ersätt THUMBPRINT med tumavtrycket för rotcertifikatet som du vill generera ett klientcertifikat från.
$rootcert = Get-ChildItem -Path 'Cert:\CurrentUser\My\<THUMBPRINT>'
Med tumavtrycket för P2SRootCert i föregående steg ser kommandot till exempel ut så här:
$rootcert = Get-ChildItem -Path 'Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655'
Generera ett klientcertifikat
Använd PowerShell-cmdleten New-AzVpnClientConfiguration
för att generera ett klientcertifikat. Om du inte använder samma PowerShell-session som du använde för att skapa ditt självsignerade rotcertifikat måste du identifiera det självsignerade rotcertifikatet enligt beskrivningen i föregående avsnitt. Innan du kör skriptet ersätter <resource-group-name>
du med resursgruppens namn och <vpn-gateway-name>
med namnet på den virtuella nätverksgateway som du precis distribuerade.
Viktigt!
Kör det här PowerShell-skriptet som administratör från den lokala Windows-dator som du vill ansluta till Azure-filresursen. Datorn måste köra Windows 10/Windows Server 2016 eller senare. Kör inte skriptet från ett Cloud Shell i Azure. Kontrollera att du loggar in på ditt Azure-konto innan du kör skriptet (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
Konfigurera VPN-klienten
Den virtuella Azure-nätverksgatewayen skapar ett nedladdningsbart paket med konfigurationsfiler som krävs för att initiera VPN-anslutningen på din lokala Windows-dator. Konfigurationspaketet innehåller inställningar som är specifika för den VPN-gateway som du skapade. Om du gör ändringar i gatewayen, till exempel om du ändrar en tunneltyp, ett certifikat eller en autentiseringstyp, måste du generera ett annat konfigurationspaket för VPN-klientprofilen och installera det på varje klient. Annars kanske vpn-klienterna inte kan ansluta.
Du konfigurerar VPN-anslutningen med funktionen Always On VPN som introducerades i Windows 10/Windows Server 2016. Det här paketet innehåller även körbara filer som konfigurerar den äldre Windows VPN-klienten om så önskas. Den här guiden använder Always On VPN i stället för den äldre Windows VPN-klienten eftersom AlwaysOn VPN-klienten gör att du kan ansluta/koppla från Azure VPN utan att ha administratörsbehörighet till datorn.
Installera klientcertifikatet
Följ dessa steg på klientdatorn för att installera det klientcertifikat som krävs för autentisering mot den virtuella nätverksgatewayen.
- När klientcertifikatet har exporterats letar du upp och kopierar .pfx-filen till klientdatorn.
- Installera .pfx-filen genom att dubbelklicka på den på klientdatorn. Leave the Store Location as Current User, and then select Next.
- Gör inga ändringar på sidan för den Fil som ska importeras. Välj Nästa.
- På sidan Skydd av privat nyckel anger du lösenordet för certifikatet eller kontrollerar att säkerhetsobjektet är korrekt och väljer sedan Nästa.
- På sidan Certifikatarkiv lämnar du standardplatsen och väljer sedan Nästa.
- Välj Slutför. På säkerhetsvarningen för certifikatinstallationen väljer du Ja. Du kan bekvämt välja "Ja" för den här säkerhetsvarningen eftersom du genererade certifikatet.
- Certifikatet har nu importerats.
Installera VPN-klienten
Det här avsnittet hjälper dig att konfigurera den interna VPN-klienten som ingår i ditt Windows-operativsystem för att ansluta till ditt virtuella nätverk (IKEv2 och SSTP). Den här konfigurationen kräver inte ytterligare klientprogramvara.
View configuration files
På klientdatorn navigerar du till C:\vpn-temp
och öppnar mappen vpnclientconfiguration för att visa följande undermappar:
- WindowsAmd64 och WindowsX86, som innehåller Windows 64-bitars respektive 32-bitars installationspaket. Installationsprogrammet för WindowsAmd64 är för alla 64-bitars Windows-klienter som stöds, inte bara Amd.
- Generic, som innehåller allmän information som används för att skapa en egen VPN-klientkonfiguration. Den generiska mappen tillhandahålls om IKEv2 eller SSTP+IKEv2 har konfigurerats på gatewayen. Om endast SSTP har konfigurerats finns inte mappen Generic.
Konfigurera VPN-klientprofil
Du kan använda samma VPN-klientkonfigurationspaket på varje Windows-klientdator, så länge versionen matchar klientens arkitektur.
Anteckning
Du måste ha administratörsbehörighet på den Windows-klientdator som du vill ansluta från för att kunna köra installationspaketet.
Välj de VPN-klientkonfigurationsfiler som motsvarar Windows-datorns arkitektur. För en 64-bitars processorarkitektur väljer du
VpnClientSetupAmd64
installationspaketet. För en 32-bitars processorarkitektur väljer duVpnClientSetupX86
installationspaketet.Dubbelklicka på paketet för att installera det. Om du ser ett SmartScreen-popup-fönster väljer du Mer information och sedan Kör ändå.
Anslut till ditt VPN. Gå till VPN-inställningar och leta upp den VPN-anslutning som du skapade. Det är samma namn som ditt virtuella nätverk. Välj Anslut. Ett popup-meddelande kan visas. Välj Fortsätt om du vill använda utökade privilegier.
På statussidan Anslutning väljer du Anslut för att initiera anslutningen. Om du ser skärmen Välj certifikat kontrollerar du att klientcertifikatet som visas är det som du vill använda för att ansluta. Om den inte är det använder du listrutepilen för att välja rätt certifikat och väljer sedan OK.
Mount Azure file share
Nu när du har konfigurerat punkt-till-plats-VPN kan du använda det för att montera Azure-filresursen på en lokal dator.
To mount the file share using your storage account key, open a Windows command prompt and run the following command. Ersätt <YourStorageAccountName>
, <FileShareName>
och <YourStorageAccountKey>
med dina egna värden. If Z: is already in use, replace it with an available drive letter. Du hittar din lagringskontonyckel i Azure Portal genom att gå till lagringskontot och välja Säkerhets - och nätverksåtkomstnycklar>.
net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>
Rotate VPN Root Certificate
Om ett rotcertifikat måste roteras på grund av förfallodatum eller nya krav kan du lägga till ett nytt rotcertifikat till den befintliga virtuella nätverksgatewayen utan att distribuera om den virtuella nätverksgatewayen. När du har lagt till rotcertifikatet med hjälp av följande skript måste du återskapa VPN-klientcertifikatet.
Ersätt <resource-group-name>
, <desired-vpn-name-here>
och <new-root-cert-name>
med dina egna värden och kör sedan skriptet.
#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