Dobar dan Nastavimo s ovom temom).
Danas prelazimo na praktični dio. Počnimo postavljanjem našeg CA baziranog na punopravnoj open source kriptografskoj biblioteci openSSL. Ovaj algoritam je testiran koristeći Windows 7.
Sa instaliranim openSSL-om, možemo izvoditi različite kriptografske operacije (kao što je kreiranje ključeva i certifikata) putem komandne linije.
Algoritam radnji je sljedeći:
- Preuzmite instalacijsku distribuciju openssl-1.1.1g.
openSSL ima različite verzije. U dokumentaciji za Rutoken piše da je potrebna openSSL verzija 1.1.0 ili novija. Koristio sam openssl-1.1.1g verziju. OpenSSL možete preuzeti sa službene stranice, ali za lakšu instalaciju morate pronaći instalacionu datoteku za windows na mreži. uradio sam ovo za tebe:
Pomaknite se prema dolje po stranici i preuzmite Win64 OpenSSL v1.1.1g EXE 63MB Installer. - Instalirajte openssl-1.1.1g na računar.
Instalacija se mora izvršiti prema standardnoj putanji, koja je automatski naznačena u mapi C: Program Files. Program će biti instaliran u OpenSSL-Win64 folder. - Da biste podesili openSSL onako kako vam je potrebno, postoji datoteka openssl.cfg. Ova datoteka se nalazi na putu C:\Program Files\OpenSSL-Win64bin ako ste instalirali openSSL kao što je opisano u prethodnom paragrafu. Idite u mapu u kojoj je pohranjen openssl.cfg i otvorite ovu datoteku koristeći, na primjer, Notepad++.
- Vjerovatno ste pogodili da će se certifikacijsko tijelo nekako konfigurirati promjenom sadržaja datoteke openssl.cfg i potpuno ste u pravu. Ovo zahtijeva prilagođavanje naredbe [ ca ] . U datoteci openssl.cfg, početak teksta u kojem ćemo izvršiti promjene može se naći kao: [ ca ].
- Sada ću dati primjer postavke s njenim opisom:
[ ca ] default_ca = CA_default [ CA_default ] dir = /Users/username/bin/openSSLca/demoCA certs = $dir/certs crl_dir = $dir/crl database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/ca.crt serial = $dir/private/serial crlnumber = $dir/crlnumber crl = $dir/crl.pem private_key = $dir/private/ca.key x509_extensions = usr_certSada trebamo kreirati demoCA direktorij i poddirektorije kao što je prikazano u primjeru iznad. I postavite ga u ovaj direktorij duž putanje koja je navedena u dir (imam /Users/username/bin/openSSLca/demoCA).
Veoma je važno da pravilno napišete dir - ovo je put do direktorijuma u kojem će se nalaziti naš centar za sertifikaciju. Ovaj direktorij se mora nalaziti u /Users (tj. na računu nekog korisnika). Ako stavite ovaj direktorij, na primjer, u C: Program Files, sistem neće vidjeti datoteku sa postavkama openssl.cfg (barem je meni tako bilo).
$dir - putanja navedena u dir se ovdje zamjenjuje.
Još jedna važna stvar je kreiranje prazne datoteke index.txt, bez ove datoteke naredbe “openSSL ca…” neće raditi.
Također morate imati serijski fajl, root privatni ključ (ca.key), root certifikat (ca.crt). Proces dobijanja ovih datoteka biće opisan u nastavku.
- Povezujemo algoritme za šifrovanje koje obezbeđuje Rutoken.
Ova veza se odvija u datoteci openssl.cfg.- Prije svega, morate preuzeti potrebne Rutoken algoritme. Ovo su datoteke rtengine.dll, rtpkcs11ecp.dll.
Da biste to učinili, preuzmite Rutoken SDK: .Rutoken SDK je sve što postoji za programere koji žele isprobati Rutoken. Postoje oba odvojena primjera za rad sa Rutokenom u različitim programskim jezicima, a predstavljene su i neke biblioteke. Naše biblioteke rtengine.dll i rtpkcs11ecp.dll nalaze se u Rutoken sdk-u, na lokaciji:
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllVeoma važna tačka. Biblioteke rtengine.dll, rtpkcs11ecp.dll ne rade bez instaliranog drajvera za Rutoken. Takođe Rutoken mora biti povezan sa računarom. (za instaliranje svega što vam je potrebno za Rutoken pogledajte prethodni dio članka )
- Biblioteke rtengine.dll i rtpkcs11ecp.dll mogu se čuvati bilo gdje na korisničkom računu.
- Puteve do ovih biblioteka pišemo u openssl.cfg. Da biste to učinili, otvorite datoteku openssl.cfg, stavite red na početak ove datoteke:
openssl_conf = openssl_defNa kraju fajla morate dodati:
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll RAND_TOKEN = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP default_algorithms = CIPHERS, DIGEST, PKEY, RANDdynamic_path - morate navesti svoju putanju do biblioteke rtengine.dll.
MODULE_PATH - trebate postaviti svoju putanju do biblioteke rtpkcs11ecp.dll.
- Prije svega, morate preuzeti potrebne Rutoken algoritme. Ovo su datoteke rtengine.dll, rtpkcs11ecp.dll.
- Dodavanje varijabli okruženja.
Obavezno dodajte varijablu okruženja koja specificira putanju do openssl.cfg konfiguracijske datoteke. U mom slučaju, varijabla OPENSSL_CONF je kreirana sa putanjom C:Program FilesOpenSSL-Win64binopenssl.cfg.
U varijabli putanje morate navesti putanju do fascikle u kojoj se nalazi openssl.exe, u mom slučaju je to: C: Program FilesOpenSSL-Win64bin.
- Sada se možete vratiti na korak 5 i kreirati datoteke koje nedostaju za demoCA direktorij.
- Prva važna datoteka bez koje ništa neće raditi je serijski. Ovo je fajl bez ekstenzije čija bi vrijednost trebala biti 01. Ovu datoteku možete sami kreirati i unutra napisati 01. Možete je preuzeti i sa Rutoken SDK-a putem sdk/openssl/rtengine/samples/tool/demoCA /.
DemoCA direktorij sadrži serijski fajl, što je upravo ono što nam treba. - Kreirajte root privatni ključ.
Da bismo to uradili, koristićemo naredbu biblioteke openSSL, koja se mora pokrenuti direktno na komandnoj liniji:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key - Kreiramo root certifikat.
Da biste to učinili, koristite sljedeću naredbu openSSL biblioteke:openssl req -utf8 -x509 -key ca.key -out ca.crtImajte na umu da je root privatni ključ, koji je generiran u prethodnom koraku, potreban za generiranje root certifikata. Stoga se komandna linija mora pokrenuti u istom direktoriju.
Sve sada ima sve datoteke koje nedostaju za kompletnu konfiguraciju demoCA direktorija. Smjestite kreirane datoteke u direktorije navedene u tački 5.
- Prva važna datoteka bez koje ništa neće raditi je serijski. Ovo je fajl bez ekstenzije čija bi vrijednost trebala biti 01. Ovu datoteku možete sami kreirati i unutra napisati 01. Možete je preuzeti i sa Rutoken SDK-a putem sdk/openssl/rtengine/samples/tool/demoCA /.
Pretpostavljamo da je nakon ispunjavanja svih 8 tačaka naš certifikacijski centar u potpunosti konfiguriran.
U sljedećem dijelu ću opisati kako ćemo raditi sa sertifikacionim tijelom kako bismo postigli ono što je opisano u .
izvor: www.habr.com
