Stvaranje samopotpisanih certifikata u Windows okruženju – grafičko sučelje (Certificates konzola)

Nakon dva prethodna članka s prikazom stvaranja samopotpisanih certifikata (makecert i openssl), za kraj smo ostavili grafičko sučelje. U tu svrhu ćemo upotrijebiti administrativnu konzolu imena Certificates (certmgr.msc).

 

Na Internetu možete pronaći dosta "step-by-step" uputa, međutim većina njih "završava" generiranjem zahtjeva za certifikat (što je tek polovica onoga što mi imamo kao krajnji cilj) ili su u nekim drugim koracima nejasno napisane. S obzirom da po njima nismo uspjeli doći do cilja, certifikata učitanog u Windows Certificates konzolu, napraviti ćemo i pokazati svoj postupak kod kojeg se u nekim dijelovima možda neće baš najbolje poklapati terminologija, teorija i praksa, ali to je postupak koji funkcionira na Windows 10 / Server 2016.

 

Poveznica na "Certificates" konzolu nije prikazana na listi Administrativnih alata pa ćemo je ručno pokrenuti preko mmc konzole. Otvorimo dijalog "Run" i pokrenemo mmc.exe. U konzoli koja se otvorila kliknemo na File - Add/Remove Snap in….

 

image001.jpg

 

U prozoru Add or Remove Snap-ins označimo Certificates te kliknemo na Add >.

 

image003.jpg

 

Zatim na Certificates snap-in označimo Computer account i kliknemo Next.

 

image005.jpg

 

Na prozoru Select Computer ostavimo ponuđenu opciju Local computer i kliknemo na Finish - OK.

 

image007.jpg

 

Tako smo došli do konzole Certificates i sad krećemo u stvaranje samopotpisanog certifikata.

 

Proširimo stablo konzole: Certificates (Local computer) – Personal. Ako već od ranije imate neki certifikat u ovom spremniku, tada ćete ispod mape Personal imati i mapu Certificates. Mi takvo nešto nemamo pa ćemo kliknuti desnom tipkom na mapu Personal te izabrati All Tasks – Advanced Operations – Create Custom Request.

 

image009.jpg

 

Na prozoru Before You Begin kliknite na Next.

 

image011.png

 

Na prozoru Select Certificate Enrollment Policy označite Proceed without enrollment policy i kliknite na Next.

 

image013.jpg

 

Na prozoru Custom request ostavite (No template) CNG key i PKCS #10 te kliknite na Next.

 

image015.jpg

 

Na prozoru Certificate Information kliknite u desnom gornjem kutu, uz Details,  na strelicu koja pokazuje prema dolje i zatim kliknite na Properties.

 

image017.jpg

 

Sad dolazimo do prozora Certificate Properties u kojem ćemo definirati parametre kojima ćemo stvoriti certifikat.

 

Na kartici General trebamo upisati ime certifikata i njegov opis.

 

image019.jpg

 

Na kartici Subject možemo upisati dosta parametara, mi ćemo u ovom prikazu koristiti samo Common name -> nb-damir.srce.hr

 

image021.jpg

 

Na kartici Extensions, u polju Extended Key Usage (application policies), izabiremo svrhu certifikata. Radi jednostavnosti ovog prikaza, izabrati ćemo samo Server Authentication.

 

image023.jpg

 

Na ovoj kartici ćemo još u polju Basic constraints označiti Enable this extension.

 

image025.jpg

 

Zatim krećemo na zadnju karticu u ovom prikazu, Private Key. Ovdje ćemo kliknuti na Key options pa zatim za Key size: gdje ćemo izabrati 2048, te ćemo označiti Make private key exportable. Nakon toga idemo na polje Select Hash Algorithm gdje ćemo izabrati sha256.

 

image027.jpg

 

Zatvoriti ćemo postavke klikom na OK i nakon toga kliknuti na Next.

 

image029.jpg

 

Prije nego kliknemo na Finish, imamo dio postupka za koji smo na početku teksta spominjali kako na Internetu uglavnom nije dobro pojašnjen.

 

image031.jpg

 

U principu, kad klikom na Browse izaberemo putanju do mjesta na disku gdje ćemo spremiti zahtjev za stvaranje certifikata, u "Save as" dijalogu ćemo imati ponuđenu req ekstenziju. Međutim kad tako spremimo datoteku i kasnije otvorimo tu mapu, vidjeti ćemo da je datoteka spremljena bez ekstenzije. Negdje ćete naći upute da ekstenzija datoteke treba biti cer, negdje csr, negdje crt, no to sve je nebitno u ovom postupku.

 

image033.jpg

 

Kako god datoteka bila imenovana te spremljena, s ekstenzijom ili bez nje, (naknadno dodana ekstenzija u File Exploreru ili u čarobnjaku upisana nakon imena datoteke), to je obična tekstualna datoteka koju možete otvoriti s Notepadom i morate u njoj vidjeti tekst sličan ovom:

 

-----BEGIN NEW CERTIFICATE REQUEST-----

MIIDtDCCApwCAQAwEDEOMAwGA1UEAwwFdGVzdDMwggEiMA0GCSqGSIb3DQEBAQUA

A4IBDwAwggEKAoIBAQC592zZnfbAP3VlBOzDinrtj48SAFICy86ltKTrmGQqFJ6L

Bx+PszskinFEHpR9FzYJb0kMUyEnf9xVlTlwYmA4mqJjWHkSkJEnmda6hD34JhPx

BaT+88W6bPJkFixX5p6ty3RjihqB2jVyOwp+K6jekeCop520MuscS/qFpGDh2HGp

UPwrAJ3bS0YN6umQQoxz8O8YU06BbLoDahe/VJPU5cgN/Y3BW+yk3SWlm88M1LA7

YRiENHMGCwfowaizPjDYL/R2RSyZuWa8AMyWu2OXGkOydMKBn5QEma9Gu6rOwg0S

oqPTMVrKy/wj3dDBojpZ1/xYvNYkI27D0PdrIOo9AgMBAAGgggFdMBwGCisGAQQB

gjcNAgMxDhYMMTAuMC4xNzc2My4yMDcGCSsGAQQBgjcVFDEqMCgCAQUMCG5iLWRh

bWlyDBBOQi1EQU1JUlxkZ2xhdmFjDAdNTUMuRVhFMGYGCisGAQQBgjcNAgIxWDBW

AgEAHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAG8AZgB0AHcAYQByAGUAIABLAGUA

eQAgAFMAdABvAHIAYQBnAGUAIABQAHIAbwB2AGkAZABlAHIDAQAwgZsGCSqGSIb3

DQEJDjGBjTCBijAQBgNVHREECTAHggV0ZXN0MzAdBgNVHSUEFjAUBggrBgEFBQcD

AQYIKwYBBQUHAwIwJwYJKwYBBAGCNxUKBBowGDAKBggrBgEFBQcDATAKBggrBgEF

BQcDAjAPBgNVHRMBAf8EBTADAgEAMB0GA1UdDgQWBBQTAJzu6y6Won2gQ8uRmw7u

5NHu1zANBgkqhkiG9w0BAQsFAAOCAQEAtUDzU1oHoP1nNInAs/La7R9yEVHRWDLo

Ca8CBqlFL6k6MPuByBST22DS5LLc5ayHm71/+l83JeC2wxiCL/05NeTDHPUa7EnQ

y9YuRJGeMxFShovXOd0qZuBTgXgxBYP99TtZ6FnV07d3q9D9OJrIaJb5CpojmiCk

NvGUwT+Po9U+m61vEPOnMR9CldS2f9q+nEOaGAwsbv9N/6TZnpC59lYdnCG8fqsB

JhHk05FI7D4C8QdLX4IWryQIV9urpFPJRVhJG2TuJ/c0C53dWzeG0BprovSg/O5i

fphJqldnIuoxx9/fnh+5qW2ArOB4FzhIiWITvhxwyr0y7+BX/zB6fA==

-----END NEW CERTIFICATE REQUEST-----

 

Prema sadržaju datoteke vidimo da je to Certificate Signing Request (CSR), odnosno datoteka sa zahtjevom za izdavanje certifikata u kojoj su u kriptiranom obliku upisani parametri koje smo podesili u prikazanom postupku.

No, ta datoteka i njezina ekstenzija su nebitni za naš dalji postupak, čak je možemo i obrisati s diska, jer certifikat za koji smo radili zahtjev već imamo u Certificates konzoli! Moram priznati da je to jedan dio postupka za koji nisam uspio naći nekakvo pojašnjenje pa ću ga prihvatiti tako kako je. Inače, tu datoteku bi mogli poslati nekom izdavatelju certifikata pa bi nam on na temelju toga izdao certifikat, ali to nije tema ovog članka.  

 

Znači, certifikat za koji smo radili zahtjev se završetkom čarobnjaka (Finish) automatski pojavljuje u konzoli u mapi Certificate Enrollment Request – Certificates. Možda ćete morati osvježiti prikaz u konzoli (Action – Refresh) ako ne vidite ovu mapu.

 

image035.jpg

 

Neki autori spominju čarobnjaka za učitavanje certifikata u konzolu, ali ako krenete tim putem, dobiti ćete poruke u stilu "The file is invalid for use as the following: Security Certificate" ili "The file type is not recognizable. Select another file.". Ove poruke su logične jer smo malo prije vidjeli, prema sadržaju datoteke, da to nije certifikat koji bi učitavali, već zahtjev za kreiranje certifikata.

 

Sljedeći korak je prilično banalan. Kako već imamo certifikat u konzoli, prvo kliknite desnom tipkom na njega – Copy.

 

image037.jpg

 

Nakon toga se pozicionitrajte u mapu Certificates (Local computer) – Personal i napravite Paste.

 

image039.jpg

 

I to je to. Ako otvorimo detalje certifikata (dvoklik ili Properties) vidjeti ćemo da imamo sha256 certifikat.

 

image041.jpg

 

Jedna mana ovog postupka je da ako tijekom podešavanja napravimo neku pogrešku pa nismo na kraju zadovoljni certifikatom, moramo sve iznova. Također u ovom postupku nema opcije za promjenu vremena trajanja valjanosti certifikata.

 

Kao i za svaki samopotpisani certifikat, u svojstvima certifikata možete vidjeti poruku " This CA Root certificate is not trusted because it is not in the Trusted Root Certification Authorities store."

U tom slučaju možete certifikat istim Copy - Paste načinom instalirati u mapu Trusted Root Certification Authorities store – Certificates pa će postati "vjerodostojan".

 

Za kraj ćemo spomenuti još par detalja koji možda neće biti univerzalni na svim softverskim platformama (Windows 10, Windows Server 20xx…), ali ćemo ih ipak navesti. Kod prvog otvaranja Certificates konzole na Windowsima 10, s lijeve strane ispod Certificates (Local computer) – Personal, možda nećete imati mapu Certificates. Ona će se stvoriti prvim učitavanjem certifikata u konzolu. Napominjem ovo zato jer ako je nema tada nećete imati na što kliknuti i napraviti Paste.

U tom slučaju morate prvo napraviti Export stvorenog certifikata, a zatim Import. Ne idemo u detalje postupka jer se svode na Next – Next – Finish.

Nakon toga imate sve preduvjete za Copy – Paste sa svim sljedećim certifikatima.

 

Umjesto stvaranja certifikata preko konzole, sličnu stvar bi mogli napraviti i koristeći Internet Information Services (IIS) konzolu.

U IIS-u v 10.x (Server 2016 v1607) bi postupak za stvaranje certifikata išao: IIS – klik na ime servera – u desnom prozoru dvoklik na  "Server Certificates" – skroz desno klik na "Create Self-Signed Certificate…" nakon čega se otvara prozor u kojem upišemo ime certifikata i klikom na OK certifikat je stvoren. Ako taj certifikat otvorimo, vidjeti ćemo da je sha256 duljine 2048 bit što je u redu. Međutim, to je u Serveru 2016, dok će starije verzije generirati sha1.

 

Ako isti postupak napravimo, ali s generiranjem zahtjeva (csr) za vanjskog davatelja certifikata, "Create Certificate Request…", csr će biti sha1 duljine 2048 bit, a vraćeni certifikat u algoritmu u kojem ga je kreirao davatelj certifikata (sha256, sha384…).

 

Možemo reći da je postupak preko IIS-a brži, ali ima puno manje mogućnosti za podešavanje. Ako želite sha256, a nalazite se npr. na Serveru 2008, tada vam ionako ostaje samo opcija preko konzole.

 

Nadamo se da sa ovim zadnjim dijelom nismo previše zakomplicirali, ali morali smo to navesti jer ima dosta mrežnih stranica koje ne spominju te bitne detalje pa ljudi lutaju i isprobavaju i nepotrebno gube vrijeme.