Goddag! Lad os fortsætte med at udforske dette emne ().
I dag går vi videre til den praktiske del. Vi starter med at konfigurere dit eget certifikatcenter baseret på det fulde kryptografiske bibliotek med open source, openSSL. Denne algoritme er blevet testet på Windows 7.
Når openSSL er installeret, kan vi udføre forskellige kryptografiske operationer (f.eks. oprettelse af nøgler og certifikater) via kommandoprompten.
Handlingsplanen er som følger:
- Download installationsprogrammet openssl-1.1.1g.
openSSL har forskellige versioner. I dokumentationen til Ruttoken blev det nævnt, at versionen openSSL 1.1.0 eller nyere er nødvendig. Jeg brugte version openssl-1.1.1g. Du kan downloade openSSL fra den officielle hjemmeside, men for en lettere installation er det nødvendigt at finde installationsfilen til Windows online. Jeg har gjort det for dig:
Du skal rulle ned ad siden og downloade Win64 OpenSSL v1.1.1g EXE 63MB Installer. - Installer openssl-1.1.1g på din computer.
Installationen skal foregå som standardvejen, som automatisk angives i mappen C:Program Files. Programmet vil blive installeret i mappen OpenSSL-Win64. - For at konfigurere openSSL, som du ønsker, findes der en fil openssl.cfg. Denne fil er placeret i stien C:Program FilesOpenSSL-Win64bin, hvis du har installeret openSSL som nævnt i det foregående punkt. Gå til mappen, hvor openssl.cfg er gemt, og åbn denne fil med f.eks. Notepad++.
- Du har sikkert gættet, at konfigurationen af certifikatcentret vil blive udført ved at ændre indholdet af filen openssl.cfg, og det har du helt ret i. For dette kræves det at konfigurere kommandoen [ ca ]. I filen openssl.cfg kan du finde starten på teksten, hvor vi vil foretage ændringer, som: [ ca ].
- Nu vil jeg give et eksempel på konfiguration med en beskrivelse:
[ 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_certNu er det nødvendigt at oprette kataloget demoCA og undermapperne, som vist i eksemplet ovenfor. Og placere dette i den katalog, der er angivet i dir (for mig /Users/username/bin/openSSLca/demoCA).
Det er meget vigtigt at angive dir korrekt – det er stien til den mappe, hvor vores certifikatmyndighed vil befinde sig. Denne mappe skal absolut være placeret i /Users (eller rettere i en brugerkonto). Hvis du placerer denne mappe for eksempel i C:Program Files, vil systemet ikke kunne se filen med indstillingerne openssl.cfg (i det mindste var det sådan for mig).
$dir – her indsættes stien, som er angivet i dir.
En anden vigtig ting er at oprette en tom fil index.txt, uden denne fil vil kommandoerne 'openSSL ca …' ikke fungere.
Det er også nødvendigt at have filen serial, den rodfæstede private nøgle (ca.key), og det rodfæstede certifikat (ca.crt). Processen til at opnå disse filer vil blive beskrevet senere.
- Vi aktiverer de krypteringsalgoritmer, der leveres af Rutoken.
Denne tilslutning sker i filen openssl.cfg.- Først og fremmest kræves det at downloade de nødvendige algoritmer fra Rutoken. Det er filerne rtengine.dll, rtpkcs11ecp.dll.
For at gøre dette downloader vi Rutoken SDK: .Rutoken SDK – det er alt, hvad der findes for udviklere, der ønsker at afprøve Rutoken. Der er både separate eksempler på at arbejde med Rutoken i forskellige programmeringssprog og nogle biblioteker. Vore biblioteker rtengine.dll og rtpkcs11ecp.dll findes i Rutoken sdk henholdsvis på følgende placering:
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllEn meget vigtig detalje. Bibliotekerne rtengine.dll og rtpkcs11ecp.dll fungerer ikke uden den installerede driver til Rutoken. Rutoken skal også være tilsluttet computeren. (om installationen af alt nødvendigt til Rutoken, se i den forrige del af artiklen )
- Bibliotekerne rtengine.dll og rtpkcs11ecp.dll kan placeres hvor som helst i brugerens konto.
- Vi angiver stierne til disse biblioteker i openssl.cfg. For at gøre dette åbner vi filen openssl.cfg, og i starten af denne fil skal vi indsætte linjen:
openssl_conf = openssl_defI slutningen af filen skal vi tilføje:
[ 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=AktivCo.;model=RutokenECP default_algorithms = CIPHERS, DIGEST, PKEY, RANDdynamic_path – du skal angive din egen sti til biblioteket rtengine.dll.
MODULE_PATH – du skal angive din egen sti til biblioteket rtpkcs11ecp.dll.
- Først og fremmest kræves det at downloade de nødvendige algoritmer fra Rutoken. Det er filerne rtengine.dll, rtpkcs11ecp.dll.
- Tilføj miljøvariabler.
Det er nødvendigt at tilføje en miljøvariabel, der angiver stien til konfigurationsfilen openssl.cfg. I mit tilfælde blev der oprettet en variabel OPENSSL_CONF med stien C:Program FilesOpenSSL-Win64binopenssl.cfg.
I variablen path skal stien til mappen, hvor openssl.exe ligger, angives; i mit tilfælde er det: C:Program FilesOpenSSL-Win64bin.
- Nu kan vi gå tilbage til punkt 5 og oprette de manglende filer til kataloget demoCA.
- Den første vigtige fil, uden hvilken intet vil fungere, er serial. Det er en fil uden filtype, hvis værdi skal være 01. Du kan oprette denne fil selv og skrive 01 ind i den. Du kan også downloade den fra RUTOKEN SDK på stien sdk/openssl/rtengine/samples/tool/demoCA/.
I kataloget demoCA ligger filen serial, som vi netop har brug for. - Opretter den rod-private nøgle.
Til dette vil vi benytte kommandoen fra openSSL-biblioteket, som skal køres direkte i kommandoprompten:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key - Opretter det rod-certifikat.
Til dette vil vi bruge følgende kommando fra openSSL-biblioteket:openssl req -utf8 -x509 -key ca.key -out ca.crtBemærk, at der kræves den rod-private nøgle, som blev oprettet i det foregående trin, for at oprette rod-certifikatet. Derfor skal kommandoprompten være startet i den samme mappe.
Nu er alle de manglende filer til den fulde konfiguration af kataloget demoCA til stede. Placer de oprettede filer i de mapper, der er angivet i punkt 5.
- Den første vigtige fil, uden hvilken intet vil fungere, er serial. Det er en fil uden filtype, hvis værdi skal være 01. Du kan oprette denne fil selv og skrive 01 ind i den. Du kan også downloade den fra RUTOKEN SDK på stien sdk/openssl/rtengine/samples/tool/demoCA/.
Vi vil antage, at vores certifikatmyndighed er fuldt konfigureret efter at have udført alle 8 punkter.
I næste del vil jeg fortælle, hvordan vi skal arbejde med certifikatmyndigheden for at udføre det, der blev beskrevet i .
Kilde: habr.com
