Certificaten genereren en exporteren voor VPN-verbindingen van gebruikers met behulp van PowerShell
Configuraties van gebruikers-VPN (punt-naar-site) kunnen worden geconfigureerd om certificaten te vereisen voor verificatie. In dit artikel leest u hoe u een zelfondertekend basiscertificaat maakt en clientcertificaten genereert met behulp van PowerShell in 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 besturingssysteemvereiste, kunt u MakeCert gebruiken om certificaten te genereren. De certificaten die u genereert met behulp van beide methoden, 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 gemaakt met de naam 'P2SRootCert' dat automatisch wordt geïnstalleerd in 'Certificates-Current User\Personal\Certificates'. U kunt het certificaat bekijken door certmgr.msc te openen of gebruikerscertificaten te beheren.
Breng de benodigde wijzigingen aan voordat u dit voorbeeld gebruikt. De parameter 'NotAfter' is optioneel. Standaard verloopt het certificaat na 1 jaar zonder deze parameter.
$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 open 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 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 is nog steeds geopend
Gebruik dit voorbeeld als u uw PowerShell-console niet hebt gesloten nadat u het zelfondertekende basiscertificaat hebt gemaakt. Dit voorbeeld wordt voortgezet uit de vorige sectie en gebruikt de gedeclareerde variabele '$cert'. Als u de PowerShell-console hebt gesloten nadat u het zelfondertekende basiscertificaat hebt gemaakt 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 bij het uitvoeren van dit voorbeeld. 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 uit 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 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 in de vorige stap gebruikt, 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 bij het uitvoeren van dit voorbeeld. 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 exporteren (.cer)
Nadat u een zelfondertekend basiscertificaat hebt gemaakt, exporteert u het basiscertificaat .cer bestand (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.
Als u het certificaat .cer-bestand wilt ophalen, opent u Gebruikerscertificaten beheren.
Zoek het zelfondertekende basiscertificaat, meestal in Certificaten - Huidige gebruiker\Persoonlijk\Certificaten en klik met de rechtermuisknop. Selecteer 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 geopend - lokale computer, in plaats van certificaten - huidige gebruiker.
Selecteer Volgende in de wizard.
Selecteer Nee, exporteer de persoonlijke sleutel niet en selecteer vervolgens Volgende.
Selecteer op de pagina Bestandsindeling exporteren base-64 gecodeerde X.509 (. CER). en selecteer vervolgens Volgende.
Blader naar de locatie waarnaar u het certificaat wilt exporteren om het bestand te exporteren. Geef bij Bestandsnaam de naam van het certificaatbestand op. Selecteer vervolgens Volgende.
Selecteer Voltooien om het certificaat te exporteren.
U ziet een bevestiging dat de export is geslaagd.
Ga naar de locatie waar u het certificaat hebt geëxporteerd en open het met behulp van een teksteditor, zoals Kladblok. Als u het certificaat hebt geëxporteerd in de vereiste Met Base-64 gecodeerde X.509 (. CER)-indeling ziet u tekst die lijkt op het volgende voorbeeld. De sectie die blauw is gemarkeerd, bevat de informatie die u naar Azure kopieert en uploadt.
Als uw bestand er niet uitziet zoals in het voorbeeld, betekent dit meestal dat u het niet hebt geëxporteerd met behulp van 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. Als dat nodig is, kunt u deze later installeren op een andere computer en meer clientcertificaten genereren. Als u het zelfondertekende basiscertificaat als pfx wilt exporteren, selecteert u het basiscertificaat en gebruikt u dezelfde stappen als beschreven in Een clientcertificaat exporteren.
Het clientcertificaat exporteren
Wanneer u een clientcertificaat genereert, wordt het 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, exporteer de persoonlijke sleutel en klik 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 worden ook de basiscertificaatgegevens geëxporteerd die vereist zijn voor geslaagde clientverificatie. Zonder dit mislukt clientverificatie omdat de client niet beschikt over het vertrouwde basiscertificaat. 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.
Linux
Zie Voor Linux-stappen zelfondertekende certificaten genereren - Linux - OpenSSL of Zelfondertekende certificaten genereren - Linux - strongSwan.
Een geëxporteerd clientcertificaat installeren
Voor elke client die via een P2S-verbinding verbinding maakt, moet een clientcertificaat lokaal worden geïnstalleerd. Zie Clientcertificaten installeren voor stappen voor het installeren van een certificaat.
Volgende stappen
Ga door met de Virtual WAN-stappen voor VPN-verbindingen van gebruikers.