Windows juhend: Ise allkirjastatud sertifikaatide tegemine, kasutamine ja paigaldamine
Autor
- Nimi : Tauri Jaanus
- Rühm : AK21
- Kuupäev :21.10.2012
Sissejuhatus
Selles juhendis saab juttu olema Windows SDK makecert.exe tööriistast. Täpsemalt siis Windows SDK 7.1 versioonist, edasipidi SDK, mille installeerija saab allalaadida http://www.microsoft.com/en-us/download/details.aspx?id=8279. Kuidas valmistada sellega ise allkirjastatud (self-signed) sertifikaati, kuidas see sertifikaat paigaldada windows 7 peal ja kuidas kasutada seda sertifikaati powershelli skriptide allkirjastamiseks. Selline näide seetõttu, kuna powershell skripte, mis ei ole allkirjastatud, ei saa jooksutada, kui muidugi see piirang maha võtta.
Tehnilised nõuded Windows SDK 7.1 paigaldamiseks
Toetatud operatsiooni süsteemid: Windows 7, Windows Server 2003 R2 Standard Edition (32-bit x86), Windows Server 2003 R2 Standard x64 Edition , Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP Service Pack 3
Tööriista paigaldamine
SDK installer tuleb siis ülal antud lingi pealt alla tõmmata ja üldjuhul kõik valikud võib jätta samaks mida pakutakse, kuid sel juhul paigaldakse suures mahus (1,5GB) asju mida te tõenäoliselt ei vaja. Seega oleks mõtekas paigaldada ainult tööristad, ehk paigaldamisel teha valik selliselt.
Sellisel juhul läheb ruumi vaid 207MB, kuigi makecert ise on veel väiksem.
MAKECERT.EXE
Kõige pealt avame cmd.exe liigume käsuga "cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin" õigele teekonnale ning sealt saame käivitada makecert käsu. Mis annab tulemuseks makecert tööriista lihtsamad võtmed.
Andes käsu "makecert -!", saame tulemuseks laiendatud valiku võtmeid.
Vajalike võtmete kirjeldused:
- -n : Sertifikaadi subjekti nimi, arvuti puhul täielik FQDN nimi.
- -a : krüpteerimis algoritm valikuteks: md5, sha1, sha256, sha384, sha512. Vaike väärtuseks on sha1.
- -eku : tõhustatud võtmekasutus objekti id.
- -r : valmista ise allkirjastatud (self-signed) sertifikaat.
- -sv : subjekti privaatvõtme faili nimi (.pvk); Kui sellist ei leita siis luuakse.
- -sr : subjekti sertifikaadi ladustamis koht.
- -ss : subjekti sertifikaadi ladustamis koha nimi, mis väljutatava sertifikaadi ladustab.
- -pe : muudab genereeritava privaatvõtme eksporditavaks.
- -iv : allkirjastaja privaatvõtme fail (.pvk).
- -ic : allkirjastaja sertifikaadi fail (.cer;.crt).
- -b : sertifikaadi kehtivusaja algus kk/pp/aaaa.
- -e : sertifikaadi kehtivusaja lõpp kk/pp/aaaa.
Loome juur sertifikaadi
Loome juur sertifikaadi powershelli skriptide allkirjastamiseks järgneva käsuga. "makecert -n "CN=PowerShell Local Certificate Root" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root -sr localMachine" . Antud käsus määrasime subjekti nime, andsime sha1 krüpteeringu, võtme objekti id, tehakse ise allkirjastatud sertifikaat, privaatvõtme nime koos sertifikaadi nimega, ladustamis koha ja ladustamis koha nime. Kuna minul seda privaatvõtit polnud veel, siis palutakse mul sisestada selle võtme väärtus kaks korda. Peale seda veel korra sama võti, et antud käsk lõpetada.
Nüüd on nimega "PowerShell Local Certificate Root" sertifikaat kohas "Local Mashine\Trusted Root Certification Authorities\Certificates\".
Loome sertifikaadi
Loome ise allkirjastatud sertifikaadi käsuga "makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer". Antud käsus määrasime, et privaatvõti on eksporditav, subjekti nime, ladustamis koha nime MY - ehk kasutusel olev kasutaja konto, krüpteeringu, võtme objekti id, allkirjastaja privaatvõtme ja allkirjastaja sertifikaadi. Nüüdki küsitakse allkirjastamisel võtit, mille eelmises lõigus lõin.
Nüüd on nimega "PowerShell User" sertifikaat kohal "Current User\Personal\Certificates\".
Loome skripti testimiseks
Loome väga lihtsa powershell skripti sisuga Get-Date. Selleks käivitame powershelli ja kui see on tekkinud tegumi ribale siis parema hiire nupuga teeme vajutuse sellel ja valime "Windows PowerShell ISE". Avanevas aknas teeme vastava skripti ja salvestame selle oma kasuataja kataloogi.
Kui käivitame saame tulemuseks
Allkirjastame skripti
Allkirjastamiseks kasutame powershelli ennast.