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….
U prozoru Add or Remove Snap-ins označimo Certificates te kliknemo na Add >.
Zatim na Certificates snap-in označimo Computer account i kliknemo Next.
Na prozoru Select Computer ostavimo ponuđenu opciju Local computer i kliknemo na Finish - OK.
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.
Na prozoru Before You Begin kliknite na Next.
Na prozoru Select Certificate Enrollment Policy označite Proceed without enrollment policy i kliknite na Next.
Na prozoru Custom request ostavite (No template) CNG key i PKCS #10 te kliknite na Next.
Na prozoru Certificate Information kliknite u desnom gornjem kutu, uz Details, na strelicu koja pokazuje prema dolje i zatim kliknite na Properties.
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.
Na kartici Subject možemo upisati dosta parametara, mi ćemo u ovom prikazu koristiti samo Common name -> nb-damir.srce.hr
Na kartici Extensions, u polju Extended Key Usage (application policies), izabiremo svrhu certifikata. Radi jednostavnosti ovog prikaza, izabrati ćemo samo Server Authentication.
Na ovoj kartici ćemo još u polju Basic constraints označiti Enable this extension.
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.
Zatvoriti ćemo postavke klikom na OK i nakon toga kliknuti na Next.
Prije nego kliknemo na Finish, imamo dio postupka za koji smo na početku teksta spominjali kako na Internetu uglavnom nije dobro pojašnjen.
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.
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.
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.
Nakon toga se pozicionitrajte u mapu Certificates (Local computer) – Personal i napravite Paste.
I to je to. Ako otvorimo detalje certifikata (dvoklik ili Properties) vidjeti ćemo da imamo sha256 certifikat.
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.