Generera och exportera certifikat för VPN-anslutningar för användare med Hjälp av PowerShell
Konfigurationer av användar-VPN (punkt-till-plats) kan konfigureras för att kräva att certifikat autentiseras. Den här artikeln visar hur du skapar ett självsignerat rotcertifikat och genererar klientcertifikat med PowerShell i Windows 10 (eller senare) eller Windows Server 2016 (eller senare).
De PowerShell-cmdletar som du använder för att generera certifikat är en del av operativsystemet och fungerar inte i andra versioner av Windows. Värdoperativsystemet används bara för att generera certifikaten. När certifikaten har genererats kan du ladda upp dem eller installera dem på alla klientoperativsystem som stöds.
Om du inte har en dator som uppfyller operativsystemets krav kan du använda MakeCert för att generera certifikat. De certifikat som du genererar med någon av metoderna kan installeras på alla klientoperativsystem som stöds.
Skapa ett självsignerat rotcertifikat
Använd cmdleten New-SelfSignedCertificate för att skapa ett självsignerat rotcertifikat. Mer parameterinformation finns i New-SelfSignedCertificate.
Öppna en Windows PowerShell-konsol med utökade privilegier från en dator som kör Windows 10 eller senare eller Windows Server 2016.
Skapa ett självsignerat rotcertifikat. I följande exempel skapas ett självsignerat rotcertifikat med namnet "P2SRootCert" som installeras automatiskt i "Certificates-Current User\Personal\Certificates". Du kan visa certifikatet genom att öppna certmgr.msc eller Hantera användarcertifikat.
Gör nödvändiga ändringar innan du använder det här exemplet. Parametern "NotAfter" är valfri. Utan den här parametern upphör certifikatet som standard att gälla om ett år.
$params = @{ Type = 'Custom' Subject = 'CN=P2SRootCert' KeySpec = 'Signature' KeyExportPolicy = 'Exportable' KeyUsage = 'CertSign' KeyUsageProperty = 'Sign' KeyLength = 2048 HashAlgorithm = 'sha256' NotAfter = (Get-Date).AddMonths(24) CertStoreLocation = 'Cert:\CurrentUser\My' } $cert = New-SelfSignedCertificate @params
Låt PowerShell-konsolen vara öppen och fortsätt med nästa steg för att generera ett klientcertifikat.
Generera ett klientcertifikat
Varje klientdator som ansluter till ett virtuellt nätverk med punkt-till-plats måste ha ett klientcertifikat installerat. Du genererar ett klientcertifikat från det självsignerade rotcertifikatet och exporterar och installerar sedan klientcertifikatet. Om klientcertifikatet inte är installerat misslyckas autentiseringen.
Följande steg beskriver hur du genererar ett klientcertifikat från ett självsignerat rotcertifikat. Du kan generera flera klientcertifikat från samma rotcertifikat. När du genererar klientcertifikat med hjälp av stegen nedan installeras klientcertifikatet automatiskt på den dator som du använde för att generera certifikatet. Om du vill installera ett klientcertifikat på en annan klientdator exporterar du certifikatet.
I exemplen används cmdleten New-SelfSignedCertificate för att generera ett klientcertifikat.
Exempel 1 – PowerShell-konsolsessionen är fortfarande öppen
Använd det här exemplet om du inte har stängt PowerShell-konsolen när du har skapat det självsignerade rotcertifikatet. Det här exemplet fortsätter från föregående avsnitt och använder den deklarerade variabeln "$cert". Om du stängde PowerShell-konsolen när du har skapat det självsignerade rotcertifikatet eller skapar ytterligare klientcertifikat i en ny PowerShell-konsolsession använder du stegen i Exempel 2.
Ändra och kör exemplet för att generera ett klientcertifikat. Om du kör följande exempel utan att ändra det blir resultatet ett klientcertifikat med namnet "P2SChildCert". Om du vill ge det underordnade certifikatet ett annat namn ändrar du CN-värdet. Ändra inte TextExtension när du kör det här exemplet. Klientcertifikatet som du genererar installeras automatiskt i "Certifikat – aktuell användare\personligt\certifikat" på datorn.
$params = @{
Type = 'Custom'
Subject = 'CN=P2SChildCert'
DnsName = 'P2SChildCert'
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(18)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $cert
TextExtension = @(
'2.5.29.37={text}1.3.6.1.5.5.7.3.2')
}
New-SelfSignedCertificate @params
Exempel 2 – Ny PowerShell-konsolsession
Om du skapar ytterligare klientcertifikat eller inte använder samma PowerShell-session som du använde för att skapa ditt självsignerade rotcertifikat använder du följande steg:
Identifiera det självsignerade rotcertifikatet som är installerat på datorn. Den här cmdleten returnerar en lista över 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. CN-namnet är namnet på det självsignerade rotcertifikat som du vill generera ett underordnat certifikat från. I det här fallet "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 underordnat certifikat från.
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"
Om du till exempel använder tumavtrycket för P2SRootCert i föregående steg ser variabeln ut så här:
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
Ändra och kör exemplet för att generera ett klientcertifikat. Om du kör följande exempel utan att ändra det blir resultatet ett klientcertifikat med namnet "P2SChildCert". Om du vill ge det underordnade certifikatet ett annat namn ändrar du CN-värdet. Ändra inte TextExtension när du kör det här exemplet. Klientcertifikatet som du genererar installeras automatiskt i "Certifikat – aktuell användare\personligt\certifikat" på datorn.
$params = @{ Type = 'Custom' Subject = 'CN=P2SChildCert' DnsName = 'P2SChildCert1' KeySpec = 'Signature' KeyExportPolicy = 'Exportable' KeyLength = 2048 HashAlgorithm = 'sha256' NotAfter = (Get-Date).AddMonths(18) CertStoreLocation = 'Cert:\CurrentUser\My' Signer = $cert TextExtension = @( '2.5.29.37={text}1.3.6.1.5.5.7.3.2') } New-SelfSignedCertificate @params
Exportera den offentliga rotcertifikatnyckeln (.cer)
När du har skapat ett självsignerat rotcertifikat exporterar du rotcertifikatet .cer -filen (inte den privata nyckeln). Du laddar senare upp nödvändiga certifikatdata som finns i filen till Azure. Följande steg hjälper dig att exportera .cer-filen för ditt självsignerade rotcertifikat och hämta nödvändiga certifikatdata.
Om du vill hämta certifikatet .cer-filen öppnar du Hantera användarcertifikat.
Leta upp det självsignerade rotcertifikatet, vanligtvis i Certifikat – Aktuell användare\Personliga\Certifikat, och högerklicka. Välj Alla aktiviteter –> Exportera. Guiden Exportera certifikat öppnas.
Om du inte hittar certifikatet under "Current User\Personal\Certificates" kan du av misstag ha öppnat certifikat – lokal dator i stället för certifikat – aktuell användare.
I guiden väljer du Nästa.
Välj Nej, exportera inte den privata nyckeln och välj sedan Nästa.
På sidan Exportera filformat väljer du Base-64-kodad X.509 (. CER)., och välj sedan Nästa.
För Fil att exportera bläddrar du till den plats där du vill exportera certifikatet. För Filnamn anger du ett namn för certifikatfilen. Välj sedan Nästa.
Välj Slutför för att exportera certifikatet.
Du ser en bekräftelse som säger att exporten lyckades.
Gå till den plats där du exporterade certifikatet och öppna det med hjälp av en textredigerare, till exempel Anteckningar. Om du exporterade certifikatet i den nödvändiga Base-64-kodade X.509 (. CER)-format, du ser text som liknar följande exempel. Avsnittet som är markerat i blått innehåller den information som du kopierar och laddar upp till Azure.
Om filen inte liknar exemplet innebär det vanligtvis att du inte exporterade den med hjälp av Base-64-kodade X.509(. CER-format. Om du använder en annan textredigerare än Anteckningar kan du dessutom förstå att vissa redigerare kan introducera oavsiktlig formatering i bakgrunden. Detta kan skapa problem när texten laddas upp från det här certifikatet till Azure.
Exportera det självsignerade rotcertifikatet och den privata nyckeln för att lagra det (valfritt)
Du kanske vill exportera det självsignerade rotcertifikatet och lagra det på ett säkert sätt som säkerhetskopia. Om det behövs kan du senare installera det på en annan dator och generera fler klientcertifikat. Om du vill exportera det självsignerade rotcertifikatet som en .pfx väljer du rotcertifikatet och använder samma steg som beskrivs i Exportera ett klientcertifikat.
Exportera klientcertifikat
När du genererar ett klientcertifikat installeras det automatiskt på den dator som du använde för att generera det. Om du vill installera klientcertifikatet på en annan klientdator måste du först exportera klientcertifikatet.
Öppna Hantera användarcertifikat om du vill exportera ett certifikat. De klientcertifikat som du genererade finns som standard i "Certifikat – Aktuell användare\Personliga\Certifikat". Högerklicka på det klientcertifikat som du vill exportera, klicka på alla aktiviteter och klicka sedan på Exportera för att öppna guiden Exportera certifikat.
I guiden Certifikatexport klickar du på Nästa för att fortsätta.
Välj Ja, exportera den privata nyckeln och klicka sedan på Nästa.
På sidan Filformat för export låter du standardalternativen vara markerade. Se till att Ta med om möjligt alla certifikat i certifieringssökvägen har valts. Den här inställningen exporterar dessutom den rotcertifikatinformation som krävs för lyckad klientautentisering. Utan den misslyckas klientautentiseringen eftersom klienten inte har det betrodda rotcertifikatet. Klicka sedan på Nästa.
Du måste skydda den privata nyckeln på sidan Säkerhet. Om du väljer att använda ett lösenord måste du vara noga med att skriva ned eller komma ihåg lösenordet som du anger för det här certifikatet. Klicka sedan på Nästa.
På sidan Fil som ska exporterasbläddrar du till den plats som du vill exportera certifikatet till. För Filnamn anger du ett namn för certifikatfilen. Klicka sedan på Nästa.
Klicka på Slutför för att exportera certifikatet.
Linux
För Linux-steg, se Generera självsignerade certifikat – Linux – OpenSSL eller Generera självsignerade certifikat – Linux – strongSwan.
Installera ett exporterat klientcertifikat
Varje klient som ansluter via en P2S-anslutning kräver att ett klientcertifikat installeras lokalt. Anvisningar för hur du installerar ett certifikat finns i Installera klientcertifikat.
Nästa steg
Fortsätt med Virtual WAN-stegen för VPN-anslutningar för användare.