Hogyan készítsünk önaláírt tanúsítványt a Windows rendszerben?

A legtöbb Windows rendszergazda, aki ismeri a PKI témát, ismeri a segédprogramot MakeCert.exe, amivel önaláírt tanúsítványt hozhat létre. Ezt a segédprogramot a Microsoft .NET-keretrendszer SDK és a Microsoft Windows SDK tartalmazza. A Windows 8 és a Windows Server 2012 beépített képességgel saját aláírással ellátott tanúsítványt hozhat létre a PowerShell 3.0 vagy újabb verziója nélkül, speciális segédprogramok használata nélkül..

Tartalom:

  • Az New-SelfSignedCertificate Cmdlet használata tanúsítványok létrehozásához
  • Hozzon létre egy önaláírt kód aláírási tanúsítványt a kód aláírásához

Az New-SelfSignedCertificate Cmdlet használata tanúsítványok létrehozásához

A PowerShell javasolja a parancsmag használatát egy önaláírt tanúsítvány létrehozásához új-SelfSignedCertificate, a PoSh modul nevû része PKI (Nyilvános kulcsú infrastruktúra).

A PKI modulban elérhető összes parancsmag felsorolásához futtassa a következő parancsot:

Get-Command -modul PKI

Javasoljuk, hogy tesztelés céljából önaláírt tanúsítványokat használjon, vagy tanúsítványokat nyújtson be belső intranet szolgáltatásokhoz (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess stb.), Olyan esetekben, amikor valamilyen oknál fogva tanúsítványt vásárol egy külső szolgáltatótól vagy a PKI / CA infrastruktúra kiépítése lehetetlen.

tanács. Ne felejtsük el a teljes körű ingyenes SSL-tanúsítványok használatának lehetőségét is a Let's Encrypt-től. Példa arra, hogyan adhatunk ki egy titkosított SSL-tanúsítványt, és csatolhatjuk azt egy IIS-helyhez.

Tanúsítvány létrehozásához meg kell adnia az értékeket -DnsName (DNS-kiszolgáló neve, a név tetszőleges lehet, és különbözhet a helyihost névétől) és -CertStoreLocation (a helyi igazolástároló azon része, ahova a generált tanúsítványt elhelyezik). A parancsmag segítségével önaláírt tanúsítványt hozhat létre a Windows 10 (a példánkban), a Windows 8 / 8.1 és a Windows Server 2016/2012/2012 R2.

Tanúsítvány létrehozásához a test.contoso.com DNS névhez és a személyi számítógép tanúsítványok listájába való felvételéhez hajtsa végre a következő parancsot:

New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert: \ LocalMachine \ My

Címtár: Microsoft.PowerShell.Security \ Certificate :: LocalMachine \ My
Miniatűr témája
----------                               -------
2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 CN = test.contoso.com

Alapértelmezés szerint önaláírt tanúsítványt generál a következő beállításokkal:

  • Kriptográfiai algoritmus: RSA;
  • Kulcsméret: 2048 egy kicsit;
  • Érvényes kulcshasználati lehetőségek:  Ügyfél-hitelesítés és Szerver hitelesítés;
  • A tanúsítvány felhasználható: Digitális aláírás, Kulcsos titkosítás ;
  • Tanúsítvány érvényessége: 1 év.

Ez a parancs új tanúsítványt hoz létre, és importálja azt a személyi számítógép tárolójába. Nyitó pillanat certlm.msc, ellenőrizze ezt a szakaszban személyi Megjelent a számítógép tanúsítványtároló új tanúsítvány.

Mint láthatja, a tanúsítvány tulajdonságai azt jelzik, hogy ez a tanúsítvány felhasználható ügyfél-hitelesítésre (kliens hitelesítés), de érvényes a szerver hitelesítésre is (kiszolgáló hitelesítés)..

megjegyzés. Az ilyen, önaláírt tanúsítvány érvényességi ideje a létrehozásának időpontjától számított 1 év. 3 évre szóló tanúsítvány kiadásához hajtsa végre a következő parancsokat:

$ todaydate = Get-Date
$ add3year = $ todaydate.AddYears (3)
New-SelfSignedCertificate -név test.contoso.com -nem a $ add3év után -CertStoreLocation cert: \ LocalMachine \ My

A kapott tanúsítvány magánkulccsal történő jelszóval védett pfx fájlba történő exportálásához szükség van annak Thumbprint-jére, amelyet a New-SelfSignedCertificate parancs eredményeiből kell lemásolni:

$ CertPassword = ConvertTo-SecureString -String „YourPassword” -Force -AsPlainText

Export-PfxCertificate -Cert cert: \ LocalMachine \ My \ 2779C0490D558B31AAA0CEF2F6F1EB1A5C2CA83B30 -FilePath C: \ test.pfx -Password $ CertPassword

Exportálhatja a tanúsítvány nyilvános kulcsát:

Export-tanúsítvány -Cert Cert: \ LocalMachine \ My \ 2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C: \ testcert.cer

A kapott nyilvános kulcs vagy maga a tanúsítványfájl telepíthető egy webszerverre vagy tartományi ügyfelekre GPO segítségével (például tanúsítvány telepítése számítógépre csoportházirendek segítségével).

Az New-SelfSignaCertificate parancsmag egyik hasznos tulajdonsága az, hogy több különböző névvel rendelkező tanúsítványt is létrehozhat. téma alternatív nevek (SAN).

megjegyzés. Ha több névvel rendelkező tanúsítványt hoz létre, akkor a DnsName paraméterben szereplő első név lesz a CN (köznév) tanúsítvány.

Hozzon létre például a következő nevekkel rendelkező tanúsítványt:

  • Tárgy neve (CN): adfs1.contoso.com
  • Tárgy alternatív neve (DNS): web_gw.contoso.com
  • Tárgy alternatív neve (DNS): enterprise_reg.contoso.com

A tanúsítvány létrehozásának parancsa a következő:

New-SelfSignedCertificate -DnsName adfs1.contoso.com, web_gw.contoso.com, Enterprise_reg.contoso.com -CertStoreLocation cert: \ LocalMachine \ My

Kiadhat igazolást a domain teljes névterére is, ehhez adja meg a kiszolgáló nevét * .contoso.com.

New-SelfSignedCertificate -certstorelocation cert: \ localmachine \ én -név * .contoso.com

Hozzon létre egy önaláírt kód aláírási tanúsítványt a kód aláírásához

A PoweShell 3.0 verziójában az New-SelfSifgnedCertificate parancsmag csak olyan SSL-tanúsítványokat generált, amelyeket nem lehetett felhasználni az illesztőprogram és az alkalmazáskód aláírására (szemben a MakeCert által generált tanúsítványokkal)..

A PowerShell 5 verziójában az New-SelfSifgnedCertificate parancsmag új verziója felhasználható a Kód Aláírás típusú tanúsítványok kiadására..

Saját aláírással ellátott tanúsítvány létrehozásához az alkalmazáskód aláírásához futtassa a következő parancsot:

$ cert = Új-SelfSignaCertificate -Subject "Tanúsítvány a kód aláírásához" -Type CodeSigningCert -CertStoreLocation cert: \ LocalMachine \ My

Próbáljuk aláírni egy PowerShell-parancsfájlt a következő tanúsítvánnyal:

Set-AuthenticodeSignature -FilePath C: \ PS \ test_script.ps1 -Certificate $ cert

Ha az UnknownError figyelmeztetés jelenik meg a parancs végrehajtása közben, akkor a tanúsítvány megbízhatatlan, mert a felhasználói igazolások személyes tárolójában található.

A gyökér tanúsítványokba kell helyeznie (ne felejtse el rendszeresen ellenőrizni a Windows tanúsítványtárolójában a nem megbízható tanúsítványokat és frissíteni a gyökér tanúsítványok listáját):

Move-Item -Path $ cert.PSPath -Destination "Cert: \ CurrentUser \ Root"

Ezt követően aláírhatja a PowerShell-szkriptet ezen önaláírt tanúsítvány használatával.