Danes prehajamo na praktični del. Začnimo z nastavitvijo našega CA na podlagi polne odprtokodne kriptografske knjižnice openSSL. Ta algoritem je bil preizkušen z operacijskim sistemom Windows 7.
Z nameščenim openSSL lahko izvajamo različne kriptografske operacije (kot je ustvarjanje ključev in certifikatov) prek ukazne vrstice.
Algoritem dejanj je naslednji:
Prenesite namestitveno distribucijo openssl-1.1.1g.
openSSL ima različne različice. V dokumentaciji za Rutoken je navedeno, da je potrebna različica openSSL 1.1.0 ali novejša. Uporabil sem različico openssl-1.1.1g. OpenSSL lahko prenesete z uradne strani, vendar morate za lažjo namestitev poiskati namestitveno datoteko za windows na netu. To sem naredil zate: slproweb.com/products/Win32OpenSSL.html
Pomaknite se navzdol po strani in prenesite namestitveni program Win64 OpenSSL v1.1.1g EXE 63 MB.
Namestite openssl-1.1.1g v računalnik.
Namestitev je treba izvesti po standardni poti, ki je samodejno navedena v mapi C: Program Files. Program bo nameščen v mapo OpenSSL-Win64.
Za nastavitev openSSL, kot jo potrebujete, obstaja datoteka openssl.cfg. Ta datoteka se nahaja na poti C:\Program Files\OpenSSL-Win64bin, če ste namestili openSSL, kot je opisano v prejšnjem odstavku. Pojdite v mapo, v kateri je shranjen openssl.cfg, in odprite to datoteko, na primer z Notepad++.
Verjetno ste uganili, da bo overitelj na nek način konfiguriran s spremembo vsebine datoteke openssl.cfg, in imate popolnoma prav. To zahteva prilagoditev ukaza [ ca ]. V datoteki openssl.cfg lahko začetek besedila, kjer bomo spreminjali, najdete kot: [ ca ].
Zdaj moramo ustvariti imenik demoCA in podimenike, kot je prikazano v zgornjem primeru. In ga postavite v ta imenik po poti, ki je navedena v dir (imam /Users/username/bin/openSSLca/demoCA).
Zelo pomembno je, da pravilno črkujete dir – to je pot do imenika, kjer bo naš certifikacijski center. Ta imenik mora biti v /Users (to je v računu nekega uporabnika). Če ta imenik postavite na primer v C: Program Files, sistem ne bo videl datoteke z nastavitvami openssl.cfg (vsaj pri meni je bilo tako).
$dir - tukaj je nadomeščena pot, navedena v dir.
Druga pomembna točka je ustvariti prazno datoteko index.txt, brez te datoteke ukazi »openSSL ca ...« ne bodo delovali.
Imeti morate tudi serijsko datoteko, korenski zasebni ključ (ca.key), korensko potrdilo (ca.crt). Postopek pridobivanja teh datotek bo opisan spodaj.
Povezujemo algoritme šifriranja, ki jih ponuja Rutoken.
Ta povezava poteka v datoteki openssl.cfg.
Najprej morate prenesti potrebne algoritme Rutoken. To sta datoteki rtengine.dll, rtpkcs11ecp.dll.
Če želite to narediti, prenesite Rutoken SDK: www.rutoken.ru/developers/sdk.
Rutoken SDK je vse, kar je na voljo za razvijalce, ki želijo preizkusiti Rutoken. Obstajata oba ločena primera za delo z Rutokenom v različnih programskih jezikih in predstavljene so nekatere knjižnice. Naši knjižnici rtengine.dll in rtpkcs11ecp.dll se nahajata v Rutoken sdk oziroma na lokaciji:
Zelo pomembna točka. Knjižnice rtengine.dll, rtpkcs11ecp.dll ne delujejo brez nameščenega gonilnika za Rutoken. Tudi Rutoken mora biti povezan z računalnikom. (za namestitev vsega, kar potrebujete za Rutoken, glejte prejšnji del članka habr.com/en/post/506450)
Knjižnici rtengine.dll in rtpkcs11ecp.dll lahko shranite kjer koli v uporabniškem računu.
Poti do teh knjižnic zapišemo v openssl.cfg. Če želite to narediti, odprite datoteko openssl.cfg, postavite vrstico na začetek te datoteke:
dynamic_path - določiti morate svojo pot do knjižnice rtengine.dll.
MODULE_PATH - morate napisati svojo pot do knjižnice rtpkcs11ecp.dll.
Dodajanje spremenljivk okolja.
Ne pozabite dodati spremenljivke okolja, ki določa pot do konfiguracijske datoteke openssl.cfg. V mojem primeru je bila spremenljivka OPENSSL_CONF ustvarjena s potjo C:Program FilesOpenSSL-Win64binopenssl.cfg.
V spremenljivki poti morate določiti pot do mape, kjer se nahaja openssl.exe, v mojem primeru je to: C: Program FilesOpenSSL-Win64bin.
Zdaj se lahko vrnete na 5. korak in ustvarite manjkajoče datoteke za imenik demoCA.
Prva pomembna datoteka, brez katere nič ne deluje, je serijska. To je datoteka brez končnice, katere vrednost bi morala biti 01. To datoteko lahko ustvarite sami in vanjo vpišete 01. Lahko jo tudi prenesete iz Rutoken SDK po poti sdk/openssl/rtengine/samples/tool/demoCA /.
Imenik demoCA vsebuje serijsko datoteko, ki je točno to, kar potrebujemo.
Ustvarite korenski zasebni ključ.
Za to bomo uporabili ukaz knjižnice openSSL, ki ga moramo zagnati neposredno v ukazni vrstici:
Ustvarimo korensko potrdilo.
Če želite to narediti, uporabite naslednji ukaz knjižnice openSSL:
openssl req -utf8 -x509 -key ca.key -out ca.crt
Upoštevajte, da je za generiranje korenskega potrdila potreben korenski zasebni ključ, ki je bil ustvarjen v prejšnjem koraku. Zato je treba ukazno vrstico zagnati v istem imeniku.
Vse ima zdaj vse manjkajoče datoteke za popolno konfiguracijo imenika demoCA. Ustvarjene datoteke postavite v imenike, navedene v 5. točki.
Predvidevamo, da je po izpolnitvi vseh 8 točk naš certifikacijski center v celoti konfiguriran.
V naslednjem delu bom opisal, kako bomo sodelovali s overiteljem, da bi dosegli, kar je opisano v prejšnji del članka.