Generování a export certifikátů pro připojení VPN uživatele pomocí PowerShellu
Konfigurace sítě VPN uživatele (point-to-site) je možné nakonfigurovat tak, aby vyžadovaly ověření certifikátů. V tomto článku se dozvíte, jak vytvořit kořenový certifikát podepsaný svým držitelem a vygenerovat klientské certifikáty pomocí PowerShellu ve Windows 10 (nebo novějším) nebo Windows Serveru 2016 (nebo novějším).
Rutiny PowerShellu, které používáte ke generování certifikátů, jsou součástí operačního systému a nefungují v jiných verzích Windows. K vygenerování certifikátů se používá pouze hostitelský operační systém. Po vygenerování certifikátů je můžete nahrát nebo nainstalovat do libovolného podporovaného klientského operačního systému.
Pokud nemáte počítač, který splňuje požadavky operačního systému, můžete certifikáty vygenerovat pomocí nástroje MakeCert . Certifikáty, které vygenerujete pomocí obou metod, lze nainstalovat do libovolného podporovaného klientského operačního systému.
Vytvoření kořenového certifikátu podepsaného svým držitelem
K vytvoření kořenového certifikátu podepsaného svým držitelem použijte rutinu New-SelfSignedCertificate. Další informace o parametrech naleznete v tématu New-SelfSignedCertificate.
Z počítače s Windows 10 nebo novějším nebo Windows Serverem 2016 otevřete konzolu Windows PowerShellu se zvýšenými oprávněními.
Vytvořte kořenový certifikát podepsaný svým držitelem. Následující příklad vytvoří kořenový certifikát podepsaný svým držitelem s názvem P2SRootCert, který se automaticky nainstaluje do certifikátů Current User\Personal\Certificates. Certifikát můžete zobrazit otevřením nástroje certmgr.msc nebo správou uživatelských certifikátů.
Před použitím této ukázky proveďte potřebné změny. Parametr NotAfter je volitelný. Ve výchozím nastavení platnost certifikátu bez tohoto parametru vyprší za 1 rok.
$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
Nechte konzolu PowerShellu otevřenou a pokračujte dalším postupem vygenerování klientského certifikátu.
Vygenerování klientského certifikátu
Každý klientský počítač, který se připojuje k virtuální síti pomocí point-to-site, musí mít nainstalovaný klientský certifikát. Vygenerujete klientský certifikát z kořenového certifikátu podepsaného svým držitelem a pak certifikát klienta exportujete a nainstalujete. Pokud není klientský certifikát nainstalovaný, ověřování selže.
Následující kroky vás provedou generováním klientského certifikátu z kořenového certifikátu podepsaného svým držitelem. Můžete vygenerovat více klientských certifikátů ze stejného kořenového certifikátu. Při generování klientských certifikátů pomocí následujícího postupu se klientský certifikát automaticky nainstaluje do počítače, který jste použili k vygenerování certifikátu. Pokud chcete nainstalovat klientský certifikát do jiného klientského počítače, exportujte certifikát.
Příklady používají rutinu New-SelfSignedCertificate k vygenerování klientského certifikátu.
Příklad 1 – relace konzoly PowerShellu stále otevřená
Tento příklad použijte, pokud jste po vytvoření kořenového certifikátu podepsaného svým držitelem nezavřeli konzolu PowerShellu. Tento příklad pokračuje z předchozí části a používá deklarovanou proměnnou $cert. Pokud jste konzolu PowerShellu zavřeli po vytvoření kořenového certifikátu podepsaného svým držitelem nebo vytváříte další klientské certifikáty v nové relaci konzoly PowerShellu, postupujte podle kroků v příkladu 2.
Upravte a spusťte příklad pro vygenerování klientského certifikátu. Pokud spustíte následující příklad beze změny, výsledkem je klientský certifikát s názvem P2SChildCert. Pokud chcete podřízený certifikát pojmenovat jinak, upravte hodnotu CN. Při spuštění tohoto příkladu neměňte textExtension. Klientský certifikát, který vygenerujete, se automaticky nainstaluje do pole Certifikáty – Aktuální uživatel\Osobní\Certifikáty v počítači.
$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
Příklad 2 – Nová relace konzoly PowerShellu
Pokud vytváříte další klientské certifikáty nebo nepoužíváte stejnou relaci PowerShellu, kterou jste použili k vytvoření kořenového certifikátu podepsaného svým držitelem, postupujte následovně:
Identifikujte kořenový certifikát podepsaný svým držitelem, který je nainstalovaný v počítači. Tato rutina vrátí seznam certifikátů nainstalovaných v počítači.
Get-ChildItem -Path "Cert:\CurrentUser\My"
Vyhledejte název subjektu z vráceného seznamu a zkopírujte kryptografický otisk, který se nachází vedle něj, do textového souboru. V následujícím příkladu jsou dva certifikáty. Název CN je název kořenového certifikátu podepsaného svým držitelem, ze kterého chcete vygenerovat podřízený certifikát. V tomto případě P2SRootCert.
Thumbprint Subject ---------- ------- AED812AD883826FF76B4D1D5A77B3C08EFA79F3F CN=P2SChildCert4 7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655 CN=P2SRootCert
Deklarujte proměnnou kořenového certifikátu pomocí kryptografického otisku z předchozího kroku. Kryptografický otisk nahraďte kryptografickým otiskem kořenového certifikátu, ze kterého chcete vygenerovat podřízený certifikát.
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"
Například použití kryptografického otisku pro P2SRootCert v předchozím kroku vypadá takto:
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
Upravte a spusťte příklad pro vygenerování klientského certifikátu. Pokud spustíte následující příklad beze změny, výsledkem je klientský certifikát s názvem P2SChildCert. Pokud chcete podřízený certifikát pojmenovat jinak, upravte hodnotu CN. Při spuštění tohoto příkladu neměňte textExtension. Klientský certifikát, který vygenerujete, se automaticky nainstaluje do pole Certifikáty – Aktuální uživatel\Osobní\Certifikáty v počítači.
$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
Export veřejného klíče kořenového certifikátu (.cer)
Po vytvoření kořenového certifikátu podepsaného svým držitelem exportujte kořenový certifikát .cer soubor (nikoli privátní klíč). Později nahrajete potřebná data certifikátu obsažená v souboru do Azure. Následující kroky vám pomůžou exportovat soubor .cer kořenového certifikátu podepsaného svým držitelem a načíst potřebná data certifikátu.
Pokud chcete získat soubor .cer certifikátu, otevřete spravovat uživatelské certifikáty.
Vyhledejte kořenový certifikát podepsaný svým držitelem, obvykle v části Certifikáty – Aktuální uživatel\Osobní\Certifikáty a klikněte pravým tlačítkem myši. Vyberte Všechny úkoly -> Exportovat. Otevře se Průvodce exportem certifikátu.
Pokud nemůžete najít certifikát v části Aktuální uživatel\Osobní\Certifikáty, pravděpodobně jste omylem otevřeli certifikáty – místní počítač, ne certifikáty – aktuální uživatel.
V průvodci vyberte Další.
Vyberte Ne, neexportujte privátní klíč a pak vyberte Další.
Na stránce Exportovat formát souboru vyberte X.509 s kódováním Base-64 (. CER) a pak vyberte Další.
Chcete-li soubor exportovat, přejděte do umístění, do kterého chcete certifikát exportovat. V části Název souboru zadejte název souboru. Pak vyberte Další.
Vyberte Dokončit a exportujte certifikát.
Zobrazí se potvrzení o úspěšném exportu.
Přejděte do umístění, kam jste certifikát exportovali, a otevřete ho pomocí textového editoru, například Poznámkového bloku. Pokud jste certifikát exportovali v požadovaném kódování X.509 s kódováním Base-64 (. Formát CER) vidíte text podobný následujícímu příkladu. Oddíl zvýrazněný modře obsahuje informace, které zkopírujete a nahrajete do Azure.
Pokud soubor nevypadá podobně jako v příkladu, obvykle to znamená, že jste ho neexportovali pomocí X.509 s kódováním Base-64(. FORMÁT CER. Pokud navíc používáte jiný textový editor než Poznámkový blok, mějte na paměti, že některé editory můžou na pozadí zavést nezamýšlené formátování. To může způsobit problémy při nahrání textu z tohoto certifikátu do Azure.
Export kořenového certifikátu podepsaného svým držitelem a privátního klíče pro jeho uložení (volitelné)
Můžete chtít exportovat kořenový certifikát podepsaný svým držitelem a bezpečně ho uložit jako zálohu. Pokud potřebujete, můžete ho později nainstalovat do jiného počítače a vygenerovat další klientské certifikáty. Pokud chcete exportovat kořenový certifikát podepsaný svým držitelem jako soubor .pfx, vyberte kořenový certifikát a použijte stejný postup, jak je popsáno v části Export klientského certifikátu.
Export klientského certifikátu
Když vygenerujete klientský certifikát, automaticky se nainstaluje do počítače, který jste použili k jeho vygenerování. Pokud chcete klientský certifikát nainstalovat do jiného klientského počítače, musíte nejprve exportovat klientský certifikát.
Pokud chcete exportovat klientský certifikát, otevřete správu uživatelských certifikátů. Klientské certifikáty, které jste vygenerovali, jsou ve výchozím nastavení umístěné v části Certifikáty – Aktuální uživatel\Osobní\Certifikáty. Klikněte pravým tlačítkem myši na klientský certifikát, který chcete exportovat, klikněte na všechny úlohy a potom klepněte na tlačítko Exportovat a otevřete Průvodce exportem certifikátu.
V Průvodci exportem certifikátu pokračujte kliknutím na tlačítko Další .
Vyberte Ano, vyexportujte privátní klíč a klikněte na tlačítko Další.
Na stránce Formát souboru pro export ponechte vybrané výchozí nastavení. Ujistěte se, že je vybrána možnost Zahrnout všechny certifikáty na cestě k certifikátu, pokud je to možné. Toto nastavení navíc exportuje informace o kořenovém certifikátu, které jsou vyžadovány pro úspěšné ověření klienta. Bez něj ověřování klienta selže, protože klient nemá důvěryhodný kořenový certifikát. Poté klepněte na Další.
Na stránce Zabezpečení je nutné chránit soukromý klíč. Pokud vyberete použití hesla, ujistěte se, že jste si poznamenali nebo si pamatujete heslo, které jste pro tento certifikát nastavili. Poté klepněte na Další.
V části Soubor pro exportpřejděte do umístění, do kterého chcete certifikát vyexportovat. V části Název souboru zadejte název souboru. Poté klepněte na Další.
Certifikát vyexportujte kliknutím na Dokončit.
Linux
Postup pro Linux najdete v tématu Generování certifikátů podepsaných svým držitelem – Linux – OpenSSL nebo Generování certifikátů podepsaných svým držitelem – Linux – strongSwan.
Instalace exportovaného klientského certifikátu
Každý klient, který se připojuje přes připojení P2S, vyžaduje místní instalaci klientského certifikátu. Postup instalace certifikátu najdete v tématu Instalace klientských certifikátů.
Další kroky
Pokračujte postupem služby Virtual WAN pro připojení VPN uživatelů.