Generera och exportera certifikat för punkt-till-plats med hjälp av PowerShell

Punkt-till-plats-anslutningar använder certifikat för att autentisera. Den här artikeln visar hur du skapar ett självsignerat rotcertifikat och genererar klientcertifikat med hjälp av PowerShell på Windows 10 eller senare, eller Windows Server 2016 eller senare.

De PowerShell-cmdletar som du använder för att generera certifikat ingår i 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å ett 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. Ytterligare parameterinformation finns i New-SelfSignedCertificate.

  1. Öppna en Windows PowerShell-konsol med utökade privilegier från en dator som kör Windows 10 eller senare eller Windows Server 2016.

  2. 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
    
  3. 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 VNet 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 har stängt PowerShell-konsolen när du har skapat det självsignerade rotcertifikatet, eller om du 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 något 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\Personliga\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:

  1. 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"
    
  2. 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
    
  3. Deklarera en variabel för rotcertifikatet med tumavtrycket från föregående steg. Ersätt THUMBPRINT med tumavtrycket för det rotcertifikat 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"
    
  4. Ä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 något 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\Personliga\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 rotcertifikatets offentliga nyckel (.cer)

När du har skapat ett självsignerat rotcertifikat exporterar du .cer-rotcertifikatfilen (inte den privata nyckeln). Senare laddar du upp nödvändiga certifikatdata 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.

  1. Om du vill hämta certifikatets CER-fil öppnar du Hantera användarcertifikat.

    Leta upp det självsignerade rotcertifikatet, vanligtvis i "Certificates - Current User\Personal\Certificates", och högerklicka. Klicka på Alla aktiviteter –>Exportera. Guiden Exportera certifikat öppnas.

    Om du inte hittar certifikatet under "Aktuell användare\Personliga\Certifikat" kan du av misstag ha öppnat "Certifikat – lokal dator", i stället för "Certifikat – Aktuell användare".

    Skärmbild som visar fönstret Certifikat med Alla uppgifter och sedan Exportera markerat.

  2. Klicka på Nästa i guiden.

  3. Välj Nej, exportera inte den privata nyckeln och klicka sedan på Nästa.

    Skärmbild som visar Exportera inte den privata nyckeln.

  4. På sidan Filformat för export väljer du Base 64-kodad X.509 (. CER). och klickar sedan på Nästa.

    Skärmbild som visar export av Base-64-kodad.

  5. För Fil att exporterablä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.

  6. Klicka på Slutför för att exportera certifikatet.

  7. Du ser en bekräftelse på att exporten lyckades.

  8. 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 nödvändig Base-64-kodad X.509 (. CER-format ser du 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.

    Skärmbild som visar CER-filen öppen i Anteckningar med certifikatdata markerade.

    Om filen inte ser ut som i exemplet innebär det vanligtvis att du inte exporterade den med base-64-kodad X.509(. CER-format. Om du använder en annan textredigerare än Anteckningar förstår du dessutom att vissa redigerare kan introducera oavsiktlig formatering i bakgrunden. Detta kan skapa problem när du laddar upp texten 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.

  1. Öppna Hantera användarcertifikat om du vill exportera ett certifikat. Klientcertifikaten 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.

    Skärmbild som visar fönstret Certifikat med Alla uppgifter och Exportera markerat.

  2. I guiden Exportera certifikat klickar du på Nästa för att fortsätta.

  3. Välj Ja, exportera den privata nyckeln och klicka sedan på Nästa.

    Skärmbild som visar Ja, exportera den privata nyckeln som valts.

  4. 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.

    Skärmbild för sidan exportera filformat.

  5. 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.

    Skärmbild som visar lösenordet som angetts och bekräftats.

  6. 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.

  7. Klicka på Slutför för att exportera certifikatet.

Installera ett exporterat klientcertifikat

Varje klient som ansluter via en P2S-anslutning kräver att ett klientcertifikat installeras lokalt. Information om hur du installerar ett klientcertifikat finns i Installera ett klientcertifikat för punkt-till-plats-anslutningar.

Nästa steg

Fortsätt med punkt-till-plats-konfigurationen.