Astăzi trecem la partea practică. Să începem prin a configura CA-ul nostru bazat pe biblioteca criptografică open source cu drepturi depline openSSL. Acest algoritm a fost testat folosind Windows 7.
Cu openSSL instalat, putem efectua diverse operațiuni criptografice (cum ar fi crearea de chei și certificate) prin linia de comandă.
Algoritmul acțiunilor este după cum urmează:
Descărcați distribuția de instalare openssl-1.1.1g.
openSSL are versiuni diferite. Documentația pentru Rutoken spune că openSSL versiunea 1.1.0 sau mai nouă este necesară. Am folosit versiunea openssl-1.1.1g. Puteți descărca openSSL de pe site-ul oficial, dar pentru o instalare mai ușoară, trebuie să găsiți fișierul de instalare pentru Windows pe net. Am facut asta pentru tine: slproweb.com/products/Win32OpenSSL.html
Derulați în jos în pagină și descărcați Win64 OpenSSL v1.1.1g EXE 63MB Installer.
Instalați openssl-1.1.1g pe computer.
Instalarea trebuie efectuată conform căii standard, care este indicată automat în folderul C: Program Files. Programul va fi instalat în folderul OpenSSL-Win64.
Pentru a configura openSSL așa cum aveți nevoie, există fișierul openssl.cfg. Acest fișier se află în calea C:\Program Files\OpenSSL-Win64bin dacă ați instalat openSSL așa cum este descris în paragraful anterior. Accesați folderul în care este stocat openssl.cfg și deschideți acest fișier folosind, de exemplu, Notepad++.
Probabil ați ghicit că autoritatea de certificare va fi configurată cumva prin modificarea conținutului fișierului openssl.cfg și aveți perfectă dreptate. Acest lucru necesită personalizarea comenzii [ca]. În fișierul openssl.cfg, începutul textului în care vom face modificări poate fi găsit ca: [ ca ].
Acum voi da un exemplu de setare cu descrierea acesteia:
Acum trebuie să creăm directorul și subdirectoarele demoCA așa cum se arată în exemplul de mai sus. Și plasați-l în acest director de-a lungul căii specificate în dir (am /Users/username/bin/openSSLca/demoCA).
Este foarte important să scrieți corect dir - aceasta este calea către directorul în care va fi localizat centrul nostru de certificare. Acest director trebuie să fie localizat în /Users (adică în contul unui utilizator). Dacă plasați acest director, de exemplu, în C: Program Files, sistemul nu va vedea fișierul cu setările openssl.cfg (cel puțin așa a fost la mine).
$dir - calea specificată în dir este înlocuită aici.
Un alt punct important este să creați un fișier index.txt gol, fără acest fișier comenzile „openSSL ca…” nu vor funcționa.
De asemenea, trebuie să aveți un fișier serial, o cheie privată rădăcină (ca.key), un certificat rădăcină (ca.crt). Procesul de obținere a acestor fișiere va fi descris mai jos.
Conectăm algoritmii de criptare furnizați de Rutoken.
Această conexiune are loc în fișierul openssl.cfg.
În primul rând, trebuie să descărcați algoritmii Rutoken necesari. Acestea sunt fișierele rtengine.dll, rtpkcs11ecp.dll.
Pentru a face acest lucru, descărcați SDK-ul Rutoken: www.rutoken.ru/developers/sdk.
Rutoken SDK este tot ce există pentru dezvoltatorii care doresc să încerce Rutoken. Există ambele exemple separate pentru lucrul cu Rutoken în diferite limbaje de programare și sunt prezentate câteva biblioteci. Bibliotecile noastre rtengine.dll și rtpkcs11ecp.dll sunt situate în Rutoken sdk, respectiv, la locația:
Un punct foarte important. Bibliotecile rtengine.dll, rtpkcs11ecp.dll nu funcționează fără driverul instalat pentru Rutoken. De asemenea, Rutoken trebuie să fie conectat la computer. (pentru a instala tot ce aveți nevoie pentru Rutoken, consultați partea anterioară a articolului habr.com/en/post/506450)
Bibliotecile rtengine.dll și rtpkcs11ecp.dll pot fi păstrate oriunde în contul de utilizator.
Scriem căile către aceste biblioteci în openssl.cfg. Pentru a face acest lucru, deschideți fișierul openssl.cfg, puneți linia la începutul acestui fișier:
dynamic_path - trebuie să specificați calea către biblioteca rtengine.dll.
MODULE_PATH - trebuie să vă setați calea către biblioteca rtpkcs11ecp.dll.
Adăugarea de variabile de mediu.
Asigurați-vă că adăugați o variabilă de mediu care specifică calea către fișierul de configurare openssl.cfg. În cazul meu, variabila OPENSSL_CONF a fost creată cu calea C:Program FilesOpenSSL-Win64binopenssl.cfg.
În variabila cale, trebuie să specificați calea către folderul în care se află openssl.exe, în cazul meu este: C: Program FilesOpenSSL-Win64bin.
Acum puteți reveni la pasul 5 și puteți crea fișierele lipsă pentru directorul demoCA.
Primul fișier important fără de care nimic nu va funcționa este serialul. Acesta este un fișier fără extensie, a cărui valoare ar trebui să fie 01. Puteți să creați singur acest fișier și să scrieți înăuntru 01. De asemenea, îl puteți descărca din Rutoken SDK de-a lungul căii sdk/openssl/rtengine/samples/tool/demoCA /.
Directorul demoCA conține fișierul serial, care este exact ceea ce avem nevoie.
Creați o cheie privată rădăcină.
Pentru a face acest lucru, vom folosi comanda bibliotecii openSSL, care trebuie rulată direct pe linia de comandă:
Creăm un certificat rădăcină.
Pentru a face acest lucru, utilizați următoarea comandă de bibliotecă openSSL:
openssl req -utf8 -x509 -key ca.key -out ca.crt
Vă rugăm să rețineți că cheia privată rădăcină, care a fost generată în pasul anterior, este necesară pentru a genera certificatul rădăcină. Prin urmare, linia de comandă trebuie lansată în același director.
Totul are acum toate fișierele lipsă pentru configurarea completă a directorului demoCA. Plasați fișierele create în directoarele indicate la punctul 5.
Vom presupune că, după finalizarea tuturor celor 8 puncte, centrul nostru de certificare este complet configurat.
În partea următoare, voi descrie modul în care vom lucra cu autoritatea de certificare pentru a realiza ceea ce a fost descris în partea anterioară a articolului.