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 v Windows 10 (nebo novějším) nebo Windows Server 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. Hostitelský operační systém se používá pouze ke generování certifikátů. 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 na operační systém, můžete certifikáty vygenerovat pomocí nástroje MakeCert . Certifikáty, které vygenerujete pomocí kterékoli metody, 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 najdete v tématu New-SelfSignedCertificate.

  1. Z počítače se systémem Windows 10 nebo novějším nebo Windows Server 2016 otevřete konzolu Windows PowerShell se zvýšenými oprávněními.

  2. 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 složky Certificates-Current User\Personal\Certificates. Certifikát můžete zobrazit otevřením nástroje certmgr.msc nebo spravovat certifikáty uživatelů.

    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
    
  3. Nechte konzolu PowerShellu otevřenou a pokračujte dalšími kroky k 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. Klientský certifikát vygenerujete z kořenového certifikátu podepsaného svým držitelem a pak klientský certifikát exportujete a nainstalujete. Pokud certifikát klienta není nainstalovaný, ověřování se nezdaří.

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. Ze stejného kořenového certifikátu můžete vygenerovat více klientských certifikátů. 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.

V příkladech se k vygenerování klientského certifikátu používá rutina New-SelfSignedCertificate .

Příklad 1 – Relace konzoly PowerShellu je stále otevřená

Tento příklad použijte, pokud jste konzolu PowerShellu nezavřeli po vytvoření kořenového certifikátu podepsaného svým držitelem. Tento příklad navazuje na předchozí část 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, aniž byste ho změnili, výsledkem bude 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 složky 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ě:

  1. 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"
    
  2. 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
    
  3. Deklarujte proměnnou pro kořenový certifikát pomocí kryptografického otisku z předchozího kroku. Nahraďte KRYPTOGRAFICKÝ OTISK 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 při použití kryptografického otisku P2SRootCert v předchozím kroku bude proměnná vypadat takto:

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Upravte a spusťte příklad pro vygenerování klientského certifikátu. Pokud spustíte následující příklad, aniž byste ho změnili, výsledkem bude 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 složky 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 soubor .cer kořenového certifikátu (ne privátní klíč). Později nahrajete potřebná data certifikátu obsažená v souboru do Azure. Následující postup vám pomůže exportovat soubor .cer pro kořenový certifikát podepsaný svým držitelem a načíst potřebná data certifikátu.

  1. Pokud chcete získat soubor .cer certifikátu, otevřete Spravovat certifikáty uživatelů.

    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. Klikněte na Všechny úkoly ->Exportovat. Otevře se Průvodce exportem certifikátu.

    Pokud certifikát nemůžete najít v části Aktuální uživatel\Osobní\Certifikáty, je možné, že jste omylem otevřeli Certifikáty – místní počítač, a ne Certifikáty – Aktuální uživatel.

    Snímek obrazovky s oknem Certifikáty s vybranou možností Všechny úkoly a pak Exportovat.

  2. V průvodci klikněte na Další.

  3. Vyberte Ne, neexportovat privátní klíč a klikněte na Další.

    Snímek obrazovky ukazuje, že privátní klíč neexportujte.

  4. Na stránce Formát souboru pro export vyberte X.509, kódování Base-64 (CER) a klikněte na Další.

    Snímek obrazovky znázorňující export s kódováním Base-64

  5. V části Soubor k exportupřejděte do umístění, do kterého chcete certifikát exportovat. V části Název souboru zadejte název souboru. Potom klikněte na Další.

  6. Certifikát vyexportujte kliknutím na Dokončit.

  7. Zobrazí se potvrzení s informacemi o úspěšném exportu.

  8. Přejděte do umístění, kam jste vyexportovali certifikát, a otevřete ho v textovém editoru, například v Poznámkovém bloku. Pokud jste exportovali certifikát v požadovaném kódování Base-64 X.509 (. CER), uvidí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.

    Snímek obrazovky znázorňující soubor CER otevřený v Poznámkovém bloku se zvýrazněnými daty certifikátu

    Pokud soubor nevypadá podobně jako v příkladu, obvykle to znamená, že jste ho neexportovali pomocí X.509(, kódování Base-64. CER) formátu. 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ůsobovat problémy při nahrání textu z tohoto certifikátu do Azure.

Exportujte kořenový certifikát podepsaný svým držitelem a privátní klíč pro uložení (volitelné).

Kořenový certifikát podepsaný svým držitelem můžete exportovat a uložit ho bezpečně jako zálohu. V případě potřeby ho můžete 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 jako v tématu 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 ho nejdřív exportovat.

  1. 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é ve složce Certifikáty – Aktuální uživatel\Osobní\Certifikáty. Klikněte pravým tlačítkem na klientský certifikát, který chcete exportovat, klikněte na všechny úlohy a potom kliknutím na Exportovat otevřete Průvodce exportem certifikátu.

    Snímek obrazovky s oknem Certifikáty s vybranými možnostmi Všechny úkoly a Export

  2. Pokračujte kliknutím na Další v Průvodci exportem certifikátu.

  3. Vyberte Ano, exportovat privátní klíč a pak klikněte na Další.

    Snímek obrazovky znázorňující možnost Ano exportovat vybraný privátní klíč

  4. 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 potřeba k úspěšnému ověření klienta. Bez něj ověřování klienta selže, protože klient nemá důvěryhodný kořenový certifikát. Potom klikněte na Další.

    Snímek obrazovky se stránkou formátu souboru exportu

  5. 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. Potom klikněte na Další.

    Snímek obrazovky ukazuje zadané a potvrzené heslo.

  6. 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. Potom klikněte na Další.

  7. Certifikát vyexportujte kliknutím na Dokončit.

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 Virtual WAN kroky pro připojení VPN uživatele.