Većina Windows administratora upoznati s temom PKI znaju uslužni program MakeCert.eXE, s kojom možete kreirati potvrdu o vlastitom potpisu. Ovaj je alat uključen u Microsoftov .NET Framework SDK i Microsoft Windows SDK. Windows 8 i Windows Server 2012 imaju ugrađenu sposobnost kreiranja samopotpisanog certifikata pomoću PowerShell 3.0 i novije verzije bez korištenja posebnih alata.
sadržaj:
- Upotrebom cmdleta New-SelfSignedCertificate za kreiranje certifikata
- Izradite certifikat o potpisivanju koda za samo potpisivanje
Upotrebom cmdleta New-SelfSignedCertificate za kreiranje certifikata
PowerShell predlaže korištenje cmdleta za kreiranje certifikata koji je potpisao sam novi-SelfSignedCertificate, dio PoSh modula s imenom PKI (Infrastruktura javnog ključa).
Za popis svih dostupnih cmdleta u PKI modulu, pokrenite naredbu:
Get-Command - modul PKI
Preporučuje se da koristite samopotpisane certifikate u svrhu testiranja ili za pružanje certifikata za interne intranet usluge (IIS, Exchange, prob. Web aplikacija, LDAPS, ADRMS, DirectAccess itd.), U slučajevima kada iz nekog razloga kupite certifikat od vanjskog pružatelja usluga ili aktiviranje PKI / CA infrastrukture nemoguće.
vijeće. Ne zaboravite i na mogućnost korištenja punopravnih besplatnih SSL certifikata tvrtke Let's Encrypt. Primjer kako izdati SSL certifikat Let's Šifriraj i veže ga na IIS mjesto.Da biste stvorili potvrdu, morate navesti vrijednosti -dnsname (Ime DNS poslužitelja, ime može biti proizvoljno i različito od naziva localhost) i -CertStoreLocation (odjeljak lokalne trgovine certifikata u koju će se nalaziti generirani certifikat). Pomoću cmdleta možete kreirati samopotpisani certifikat u Windowsima 10 (u našem primjeru), Windows 8 / 8.1 i Windows Server 2016/2012/2012 R2.
Da biste stvorili potvrdu za DNS ime test.contoso.com i stavili je na popis certifikata osobnog računala, izvršite naredbu:
Novo-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert: \ LocalMachine \ My
Imenik: Microsoft.PowerShell.Security \ Certificate :: LocalMachine \ My
Tema palca
---------- -------
2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 CN = test.contoso.com
Prema zadanim postavkama generira se samopotpisan certifikat sa sljedećim postavkama:
- Kriptografski algoritam: RSA;
- Veličina ključa: 2048 malo;
- Važeće opcije upotrebe ključeva: Autentifikacija klijenta i Autentifikacija poslužitelja;
- Certifikat se može koristiti za: Digitalni potpis, Ključno šifriranje ;
- Valjanost certifikata: 1 godine.
Ova naredba će stvoriti novi certifikat i uvesti ga u pohranu osobnog računala. Snap za otvaranje certlm.MSC, provjerite to u odjeljku osobni pojavio se novi certifikat računalne trgovine.
Kao što vidite, svojstva certifikata ukazuju na to da se ovaj certifikat može koristiti za provjeru autentičnosti klijenta (Autentifikacija klijenta), ali vrijedi i za autentifikaciju poslužitelja (Autentifikacija poslužitelja).primjedba. Rok valjanosti takve samopotpisane potvrde ograničen je na godinu dana od dana njenog stvaranja. Da biste izdali certifikat za 3 godine, pokrenite sljedeće naredbe:$ todaydate = Datum-datum
$ add3year = $ todaydate.AddYears (3)
New-SelfSignedCertificate -dnsname test.contoso.com -nota $ add3year -CertStoreLocation cert: \ LocalMachine \ My
Za izvoz primljenog certifikata privatnim ključem u pfx datoteku zaštićenu lozinkom, potreban nam je Thumbprint koji se mora kopirati iz rezultata naredbe New-SelfSignedCertificate:
$ CertPassword = PretvoriTo-SecureString -String "YourPassword" -Force -AsPlainText
Export-PfxCertificate -Cert cert: \ LocalMachine \ My \ 2779C0490D558B31AAAACEC2F6EB1A5C2CA83B30 -FilePath C: \ test.pfx -Password $ CertPassword
Možete izvesti javni ključ potvrde:
Izvoz-certifikat -Cert Cert: \ LocalMachine \ My \ 2779C0490D558B31AAA0CEF2F6EB1A5C2CA83B30 -FilePath C: \ testcert.cer
Javni ključ ili sama datoteka certifikata može se instalirati na web poslužitelj ili klijente domene pomoću GPO (primjer instaliranja certifikata na PC pomoću grupnih pravila).
Jedna korisna značajka New-SelfSignedCertificate cmdleta je mogućnost stvaranja certifikata s nekoliko različitih imena. predmet alternativa imena (SAN).
primjedba. Ako se stvori certifikat s više imena, ime u parametru DnsName koristit će se kao CN (uobičajeno ime) certifikat.Na primjer, stvorite potvrdu sa sljedećim imenima:
- Naziv predmeta (CN): adfs1.contoso.com
- Alternativno ime predmeta (DNS): web_gw.contoso.com
- Alternativno ime predmeta (DNS): enterprise_reg.contoso.com
Naredba za stvaranje certifikata bit će sljedeća:
Novo-SelfSignedCertificate -DnsName adfs1.contoso.com, web_gw.contoso.com, enterprise_reg.contoso.com -CertStoreLocation cert: \ LocalMachine \ My
Možete izdati i potvrdu za cijeli prostor imena u domeni, za to odredite naziv poslužitelja kao * .contoso.com.
Novo-SelfSignedCertificate -certstorelocation cert: \ localmachine \ my -dnsname * .contoso.com
Izradite certifikat o potpisivanju koda za samo potpisivanje
U PoweShellu 3.0, cmdlet New-SelfSifgnedCertificate generirao je samo SSL certifikate koji se ne mogu koristiti za potpisivanje upravljačkog i aplikacijskog koda (za razliku od certifikata koje generira MakeCert).
U PowerShellu 5, nova inačica cmdleta New-SelfSifgnedCertificate sada se može koristiti za izdavanje certifikata vrste Signing Signing..
Da biste stvorili samopotpisani certifikat za potpisivanje aplikacijskog koda, pokrenite naredbu:
$ cert = New-SelfSignedCertificate -Subject "Potvrda za potpisivanje koda" -Type CodeSigningCert -CertStoreLocation cert: \ LocalMachine \ My
Pokušajmo potpisati PowerShell skriptu ovim certifikatom:
Set-AuthenticodeSignature -FilePath C: \ PS \ test_script.ps1 -Certificate $ cert
Ako se tijekom izvršavanja naredbe pojavi upozorenje UnknownError, tada je ovaj certifikat nepouzdan, jer nalazi se u osobnoj trgovini korisničkih potvrda.
Morate je premjestiti u korijenske certifikate (ne zaboravite da povremeno provjeravate spremište Windows certifikata o nepovjerenim certifikatima i ažurirate popise korijenskih potvrda):
Move-Item -Path $ cert.PSPath -Odredište "Cert: \ CurrentUser \ Root"
Nakon toga možete potpisati svoju PowerShell skriptu pomoću ovog samopotpisanog certifikata.