Windows juhend: Ise allkirjastatud sertifikaatide tegemine, kasutamine ja paigaldamine: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 7: Line 7:
===Sissejuhatus===
===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.
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====
===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
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
Line 15: Line 15:
====Tööriista paigaldamine====
====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.
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ööriistad, ehk paigaldamisel teha valik selliselt.


[[file:sdk.jpg]]
[[file:sdk.jpg]]
Line 21: Line 21:
Sellisel juhul läheb ruumi vaid 207MB, kuigi makecert ise on veel väiksem.
Sellisel juhul läheb ruumi vaid 207MB, kuigi makecert ise on veel väiksem.


====MAKECERT.EXE====
===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.
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.
Line 43: Line 43:
* -iv : allkirjastaja privaatvõtme fail (.pvk).
* -iv : allkirjastaja privaatvõtme fail (.pvk).
* -ic : allkirjastaja sertifikaadi fail (.cer;.crt).
* -ic : allkirjastaja sertifikaadi fail (.cer;.crt).
* -b : sertifikaadi kehtivusaja algus.
* -b : sertifikaadi kehtivusaja algus kk/pp/aaaa.
* -e : sertifikaadi kehtivusaja lõpp.
* -e : sertifikaadi kehtivusaja lõpp kk/pp/aaaa.


====Loome volituse====
====Loome juur sertifikaadi====
Loome volituse 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" .
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 nime ja ladustamis koha.
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 ladustamiskoha nime.
Kuna minul seda privaat võ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.
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.


[[file:makecert3.jpg]]
[[file:makecert3.jpg]]
Vaadates mmc.exe snap-in "Certificate" ja valides "Computer account".
Nüüd on nimega "PowerShell Local Certificate Root" sertifikaat kohas "Local Mashine\Trusted Root Certification Authorities\Certificates\".


====Loome sertifikaadi====
====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".
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, krüpteeringu, võtme objekti id, allkirjastaja privaatvõtme ja allkirjastaja sertifikaadi.
Antud käsus määrasime, et privaatvõti on eksporditav, subjekti nime, ladustamiskoha nime MY - ehk kasutusel olev kasutaja konto, krüpteeringu, võtme objekti id, allkirjastaja privaatvõtme ja allkirjastaja sertifikaadi. Kui lisada lõppu "C:\cert.cer" tekkib sertifikaat sellele teekonnale.
Nüüdki küsitakse allkirjastamisel võtit, mille eelmises lõigus lõin.
Nüüdki küsitakse allkirjastamisel võtit, mille eelmises lõigus lõin.


[[file:makecert4.jpg]]
[[file:makecert4.jpg]]


Vaadates mmc.exe snap-in "Certificate" ja valides "My user account".
Nüüd on nimega "PowerShell User" sertifikaat kohal "Current User\Personal\Certificates\".
Lisaks on vaja see sertifikaat kopeerida sealt kohta "Current User\Trusted Publishers\Certificates\"
===Loome skripti testimiseks===
Loome väga lihtsa PowerShell skripti sisuga Get-Date, mis annab meile hetke aja. 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 jooksutama esmalt sellise käsu "chcp 65001". See muudab kodeeringu utf-8 peale ja kui me seda ei tee, siis ei õnnestu ka allkirjastamine. Teeme uue lihtsa skripti "Get-Date" ja salvestame selle otse C: peale, tulemuseks C:\Date.ps1.
Kui käivitame skripti,  saame tulemuseks vea.
[[file:getdate1.jpg]]
====Allkirjastame skripti====
Allkirjastamiseks kasutame PowerShelli ennast.
Kasutame selleks sellist skripti "Set-AuthenticodeSignature C:\Date.ps1 @(Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0]".
Tulemuseks peaks tulema selline pilt. Kui tuleb Status midagi muud siis on tõenäosus, et probleemiks on skripti vale kodeering.
[[file:getdate2.jpg]]
====Skripti test====
Testime skripti, selleks käivitan PowerShelli administraator kasutajana. Kuna vaikimisi peavad kõik skriptid olema allkirjastatud ja usaldatud, siis ise allkirjastatud skriptide lubamiseks peame me muutma käivituspoliisi. Käsuga "Set-ExecutionPolicy -ExecutionPolicy AllSigned" ning vastame jah (Y).
[[file:pshell1.jpg]]
Käivitame skripti käsuga "C:\Date.ps1"
Nüüd näidatakse mulle kellaaega. Järelikult kõik toimis. Kui saate vea või küsimuse, siis on kusagil midagi tegemata jäänud.


==JÄTKUB==
[[file:pshell2.jpg]]




Line 68: Line 102:
*http://www.microsoft.com/en-us/download/details.aspx?id=8279
*http://www.microsoft.com/en-us/download/details.aspx?id=8279
*http://ralf.schaeftlein.de/2012/02/17/howto-run-self-signed-powershell-scripts/
*http://ralf.schaeftlein.de/2012/02/17/howto-run-self-signed-powershell-scripts/
*http://lingpipe-blog.com/2010/07/06/unicode-shell-for-java-windows-powershell-ise/
*http://www.howtogeek.com/106273/how-to-allow-the-execution-of-powershell-scripts-on-windows-7/

Latest revision as of 21:50, 4 November 2012

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ööriistad, 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 ladustamiskoha 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.

Vaadates mmc.exe snap-in "Certificate" ja valides "Computer account". 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, ladustamiskoha nime MY - ehk kasutusel olev kasutaja konto, krüpteeringu, võtme objekti id, allkirjastaja privaatvõtme ja allkirjastaja sertifikaadi. Kui lisada lõppu "C:\cert.cer" tekkib sertifikaat sellele teekonnale. Nüüdki küsitakse allkirjastamisel võtit, mille eelmises lõigus lõin.

Vaadates mmc.exe snap-in "Certificate" ja valides "My user account". Nüüd on nimega "PowerShell User" sertifikaat kohal "Current User\Personal\Certificates\". Lisaks on vaja see sertifikaat kopeerida sealt kohta "Current User\Trusted Publishers\Certificates\"

Loome skripti testimiseks

Loome väga lihtsa PowerShell skripti sisuga Get-Date, mis annab meile hetke aja. 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 jooksutama esmalt sellise käsu "chcp 65001". See muudab kodeeringu utf-8 peale ja kui me seda ei tee, siis ei õnnestu ka allkirjastamine. Teeme uue lihtsa skripti "Get-Date" ja salvestame selle otse C: peale, tulemuseks C:\Date.ps1.

Kui käivitame skripti, saame tulemuseks vea.


Allkirjastame skripti

Allkirjastamiseks kasutame PowerShelli ennast. Kasutame selleks sellist skripti "Set-AuthenticodeSignature C:\Date.ps1 @(Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0]". Tulemuseks peaks tulema selline pilt. Kui tuleb Status midagi muud siis on tõenäosus, et probleemiks on skripti vale kodeering.

Skripti test

Testime skripti, selleks käivitan PowerShelli administraator kasutajana. Kuna vaikimisi peavad kõik skriptid olema allkirjastatud ja usaldatud, siis ise allkirjastatud skriptide lubamiseks peame me muutma käivituspoliisi. Käsuga "Set-ExecutionPolicy -ExecutionPolicy AllSigned" ning vastame jah (Y).

Käivitame skripti käsuga "C:\Date.ps1"

Nüüd näidatakse mulle kellaaega. Järelikult kõik toimis. Kui saate vea või küsimuse, siis on kusagil midagi tegemata jäänud.


Kasutatud materjalid