Certificaten genereren en exporteren voor VPN-verbindingen van gebruikers met behulp van PowerShell
Vpn-configuraties van gebruikers (punt-naar-site) kunnen worden geconfigureerd om certificaten te vereisen voor verificatie. In dit artikel wordt beschreven hoe u een zelfondertekend basiscertificaat maakt en clientcertificaten genereert met behulp van PowerShell op Windows 10 (of hoger) of Windows Server 2016 (of hoger).
De PowerShell-cmdlets die u gebruikt om certificaten te genereren, maken deel uit van het besturingssysteem en werken niet in andere versies van Windows. Het hostbesturingssysteem wordt alleen gebruikt om de certificaten te genereren. Zodra de certificaten zijn gegenereerd, kunt u ze uploaden of installeren op elk ondersteund clientbesturingssysteem.
Als u geen computer hebt die voldoet aan de vereisten voor het besturingssysteem, kunt u MakeCert gebruiken om certificaten te genereren. De certificaten die u met beide methoden genereert, kunnen worden geïnstalleerd op elk ondersteund clientbesturingssysteem.
Een zelfondertekend basiscertificaat maken
Gebruik de cmdlet New-SelfSignedCertificate om een zelfondertekend basiscertificaat te maken. Zie New-SelfSignedCertificate voor meer informatie over parameters.
Open vanaf een computer met Windows 10 of hoger of Windows Server 2016 een Windows PowerShell-console met verhoogde bevoegdheden.
Maak een zelfondertekend basiscertificaat. In het volgende voorbeeld wordt een zelfondertekend basiscertificaat met de naam P2SRootCert gemaakt dat automatisch wordt geïnstalleerd in Certificates-Current User\Personal\Certificates. U kunt het certificaat weergeven door certmgr.msc te openen of Gebruikerscertificaten beheren.
Breng de benodigde wijzigingen aan voordat u dit voorbeeld gebruikt. De parameter 'NotAfter' is optioneel. Zonder deze parameter verloopt het certificaat standaard over 1 jaar.
$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
Laat de PowerShell-console geopend en ga verder met de volgende stappen om een clientcertificaat te genereren.
Een clientcertificaat genereren
Op elke clientcomputer die verbinding maakt met een VNet met behulp van punt-naar-site, moet een clientcertificaat zijn geïnstalleerd. U genereert een clientcertificaat op basis van het zelfondertekende basiscertificaat en exporteert en installeert vervolgens het clientcertificaat. Als het clientcertificaat niet is geïnstalleerd, mislukt de verificatie.
De volgende stappen helpen u bij het genereren van een clientcertificaat op basis van een zelfondertekend basiscertificaat. U kunt meerdere clientcertificaten genereren op basis van hetzelfde basiscertificaat. Wanneer u clientcertificaten genereert met behulp van de onderstaande stappen, wordt het clientcertificaat automatisch geïnstalleerd op de computer die u hebt gebruikt om het certificaat te genereren. Als u een clientcertificaat op een andere clientcomputer wilt installeren, exporteert u het certificaat.
In de voorbeelden wordt de cmdlet New-SelfSignedCertificate gebruikt om een clientcertificaat te genereren.
Voorbeeld 1: PowerShell-consolesessie nog steeds geopend
Gebruik dit voorbeeld als u de PowerShell-console niet hebt gesloten nadat u het zelfondertekende basiscertificaat hebt gemaakt. Dit voorbeeld gaat verder met de vorige sectie en maakt gebruik van de gedeclareerde variabele '$cert'. Als u de PowerShell-console hebt gesloten na het maken van het zelfondertekende basiscertificaat of als u extra clientcertificaten maakt in een nieuwe PowerShell-consolesessie, gebruikt u de stappen in voorbeeld 2.
Wijzig en voer het voorbeeld uit om een clientcertificaat te genereren. Als u het volgende voorbeeld uitvoert zonder dit te wijzigen, is het resultaat een clientcertificaat met de naam 'P2SChildCert'. Als u het onderliggende certificaat een andere naam wilt geven, wijzigt u de CN-waarde. Wijzig de TextExtension niet wanneer u dit voorbeeld uitvoert. Het clientcertificaat dat u genereert, wordt automatisch geïnstalleerd in 'Certificaten - Huidige gebruiker\Persoonlijk\Certificaten' op uw computer.
$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
Voorbeeld 2: Nieuwe PowerShell-consolesessie
Als u extra clientcertificaten maakt of niet dezelfde PowerShell-sessie gebruikt die u hebt gebruikt om uw zelfondertekende basiscertificaat te maken, voert u de volgende stappen uit:
Identificeer het zelfondertekende basiscertificaat dat op de computer is geïnstalleerd. Deze cmdlet retourneert een lijst met certificaten die op uw computer zijn geïnstalleerd.
Get-ChildItem -Path "Cert:\CurrentUser\My"
Zoek de onderwerpnaam in de geretourneerde lijst en kopieer de vingerafdruk die zich ernaast bevindt naar een tekstbestand. In het volgende voorbeeld zijn er twee certificaten. De CN-naam is de naam van het zelfondertekende basiscertificaat van waaruit u een onderliggend certificaat wilt genereren. In dit geval 'P2SRootCert'.
Thumbprint Subject ---------- ------- AED812AD883826FF76B4D1D5A77B3C08EFA79F3F CN=P2SChildCert4 7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655 CN=P2SRootCert
Declareer een variabele voor het basiscertificaat met behulp van de vingerafdruk uit de vorige stap. Vervang VINGERAFDRUK door de vingerafdruk van het basiscertificaat waaruit u een onderliggend certificaat wilt genereren.
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"
Als u bijvoorbeeld de vingerafdruk voor P2SRootCert gebruikt in de vorige stap, ziet de variabele er als volgt uit:
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
Wijzig en voer het voorbeeld uit om een clientcertificaat te genereren. Als u het volgende voorbeeld uitvoert zonder dit te wijzigen, is het resultaat een clientcertificaat met de naam 'P2SChildCert'. Als u het onderliggende certificaat een andere naam wilt geven, wijzigt u de CN-waarde. Wijzig de TextExtension niet wanneer u dit voorbeeld uitvoert. Het clientcertificaat dat u genereert, wordt automatisch geïnstalleerd in 'Certificaten - Huidige gebruiker\Persoonlijk\Certificaten' op uw computer.
$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
De openbare sleutel van het basiscertificaat (.cer) exporteren
Nadat u een zelfondertekend basiscertificaat hebt gemaakt, exporteert u het CER-bestand van het basiscertificaat (niet de persoonlijke sleutel). Later uploadt u de benodigde certificaatgegevens in het bestand naar Azure. Met de volgende stappen kunt u het CER-bestand voor uw zelfondertekende basiscertificaat exporteren en de benodigde certificaatgegevens ophalen.
Open Gebruikerscertificaten beheren om het CER-bestand van het certificaat op te halen.
Zoek het zelfondertekende basiscertificaat, meestal in 'Certificaten - Huidige gebruiker\Persoonlijk\Certificaten' en klik met de rechtermuisknop. Klik op Alle taken ->Exporteren. Hiermee opent u de Wizard Certificaat exporteren.
Als u het certificaat niet kunt vinden onder 'Huidige gebruiker\Persoonlijk\Certificaten', hebt u mogelijk per ongeluk 'Certificaten - lokale computer' geopend in plaats van 'Certificaten - huidige gebruiker'.
Klik in de wizard op Volgende.
Selecteer Nee, de persoonlijke sleutel niet exporteren en klik vervolgens op Volgende.
Selecteer op de pagina Bestandsindeling voor export de optie Met Base64 gecodeerde X.509 (*.CER) en klik op Volgende.
Blader voor Te exporteren bestand naar de locatie waarnaar u het certificaat wilt exporteren. Geef bij Bestandsnaam de naam van het certificaatbestand op. Klik op Volgende.
Klik op Voltooien om het certificaat te exporteren.
U ziet een bevestiging met de tekst 'De export is geslaagd'.
Ga naar de locatie waar u het certificaat hebt geëxporteerd en open het met een teksteditor, zoals Kladblok. Als u het certificaat hebt geëxporteerd in de vereiste Base-64 gecodeerde X.509 (. CER)-indeling, ziet u tekst die lijkt op het volgende voorbeeld. De blauw gemarkeerde sectie bevat de informatie die u kopieert en uploadt naar Azure.
Als uw bestand er niet uitziet zoals in het voorbeeld, betekent dit meestal dat u het niet hebt geëxporteerd met de met Base-64 gecodeerde X.509(. CER)-indeling. Als u een andere teksteditor dan Kladblok gebruikt, moet u er bovendien rekening mee houden dat sommige editors onbedoelde opmaak op de achtergrond kunnen introduceren. Dit kan problemen veroorzaken bij het uploaden van de tekst van dit certificaat naar Azure.
Het zelfondertekende basiscertificaat en de persoonlijke sleutel exporteren om het op te slaan (optioneel)
U kunt het zelfondertekende basiscertificaat exporteren en veilig opslaan als back-up. Indien nodig kunt u het later installeren op een andere computer en meer clientcertificaten genereren. Als u het zelfondertekende basiscertificaat wilt exporteren als pfx, selecteert u het basiscertificaat en gebruikt u dezelfde stappen als beschreven in Een clientcertificaat exporteren.
Het clientcertificaat exporteren
Wanneer u een clientcertificaat genereert, wordt dit automatisch geïnstalleerd op de computer die u hebt gebruikt om het te genereren. Als u het clientcertificaat op een andere clientcomputer wilt installeren, moet u eerst het clientcertificaat exporteren.
Als u een clientcertificaat wilt exporteren, opent u Gebruikerscertificaten beheren. De clientcertificaten die u hebt gegenereerd, bevinden zich standaard in 'Certificaten - Huidige gebruiker\Persoonlijk\Certificaten'. Klik met de rechtermuisknop op het clientcertificaat dat u wilt exporteren, klik op alle taken en klik vervolgens op Exporteren om de wizard Certificaat exporteren te openen.
Klik in de wizard Certificaat exporteren op Volgende om door te gaan.
Selecteer Ja, de persoonlijke sleutel exporteren en klik vervolgens op Volgende.
Laat op de pagina Bestandsindeling voor export de standaardinstellingen geselecteerd. Zorg ervoor dat en mogelijk alle certificaten in het certificeringspad opnemen is geselecteerd. Met deze instelling exporteert u bovendien de basiscertificaatgegevens die vereist zijn voor een geslaagde clientverificatie. Zonder dit certificaat mislukt de clientverificatie omdat de client niet over het vertrouwde basiscertificaat beschikt. Klik op Volgende.
Op de pagina Beveiliging moet u de persoonlijke sleutel beveiligen. Als u ervoor kiest om een wachtwoord te gebruiken, is het belangrijk dat u het wachtwoord voor dit certificaat ergens noteert of onthoudt. Klik op Volgende.
Op de pagina Te exporteren bestandbladert u naar de locatie waar u het certificaat wilt exporteren. Geef bij Bestandsnaam de naam van het certificaatbestand op. Klik op Volgende.
Klik op Voltooien om het certificaat te exporteren.
Een geëxporteerd clientcertificaat installeren
Voor elke client die verbinding maakt via een P2S-verbinding, moet een clientcertificaat lokaal worden geïnstalleerd. Zie Clientcertificaten installeren voor stappen voor het installeren van een certificaat.
Volgende stappen
Ga verder met de Virtual WAN stappen voor VPN-verbindingen van gebruikers.