Այսօր մենք անցնում ենք գործնական մասին։ Եկեք սկսենք ստեղծելով մեր CA-ն՝ հիմնվելով բաց կոդով բաց կոդով ծածկագրման ամբողջական openSSL գրադարանի վրա: Այս ալգորիթմը փորձարկվել է Windows 7-ի միջոցով:
Տեղադրված openSSL-ի դեպքում մենք կարող ենք կատարել տարբեր գաղտնագրային գործողություններ (օրինակ՝ բանալիների և վկայագրերի ստեղծում) հրամանի տողի միջոցով:
Գործողությունների ալգորիթմը հետևյալն է.
Ներբեռնեք տեղադրման բաշխումը openssl-1.1.1g:
openSSL-ն ունի տարբեր տարբերակներ։ Rutoken-ի փաստաթղթերում ասվում է, որ պահանջվում է openSSL 1.1.0 կամ ավելի նոր տարբերակ: Ես օգտագործել եմ openssl-1.1.1g տարբերակը։ Դուք կարող եք ներբեռնել openSSL-ը պաշտոնական կայքից, բայց ավելի հեշտ տեղադրման համար անհրաժեշտ է ցանցում գտնել Windows-ի տեղադրման ֆայլը: Ես արեցի սա ձեզ համար. slproweb.com/products/Win32OpenSSL.html
Ոլորեք էջը ներքև և ներբեռնեք Win64 OpenSSL v1.1.1g EXE 63MB տեղադրիչը:
Տեղադրեք openssl-1.1.1g համակարգչում:
Տեղադրումը պետք է իրականացվի ստանդարտ ուղու համաձայն, որն ավտոմատ կերպով նշված է C: Program Files թղթապանակում: Ծրագիրը կտեղադրվի OpenSSL-Win64 թղթապանակում։
Որպեսզի կարգավորեք openSSL-ը, ինչպես ձեզ անհրաժեշտ է, կա openssl.cfg ֆայլ: Այս ֆայլը գտնվում է C:\Program Files\OpenSSL-Win64bin ճանապարհում, եթե դուք տեղադրել եք openSSL-ը, ինչպես նկարագրված է նախորդ պարբերությունում: Գնացեք այն թղթապանակը, որտեղ պահվում է openssl.cfg-ը և բացեք այս ֆայլը՝ օգտագործելով, օրինակ, Notepad++:
Դուք հավանաբար կռահեցիք, որ սերտիֆիկացման մարմինը ինչ-որ կերպ կկարգավորվի՝ փոխելով openssl.cfg ֆայլի բովանդակությունը, և միանգամայն իրավացի եք: Սա պահանջում է [ ca ] հրամանի հարմարեցում: Openssl.cfg ֆայլում տեքստի սկիզբը, որտեղ մենք փոփոխություններ ենք անելու, կարելի է գտնել հետևյալ կերպ՝ [ ca ]:
Այժմ մենք պետք է ստեղծենք demoCA գրացուցակը և ենթատեղեկատուները, ինչպես ցույց է տրված վերևի օրինակում: Եվ տեղադրեք այն այս գրացուցակում dir-ում նշված ճանապարհի երկայնքով (ես ունեմ /Users/username/bin/openSSLca/demoCA):
Շատ կարևոր է dir-ը ճիշտ գրել. սա այն գրացուցակի ուղին է, որտեղ կգտնվի մեր հավաստագրման կենտրոնը: Այս գրացուցակը պետք է գտնվի /Users-ում (այսինքն՝ որոշ օգտվողի հաշվում): Եթե այս գրացուցակը տեղադրեք, օրինակ, C: Program Files-ում, ապա համակարգը չի տեսնի openssl.cfg կարգավորումներով ֆայլը (համենայնդեպս ինձ համար այդպես էր):
$dir - dir-ում նշված ուղին փոխարինված է այստեղ:
Մեկ այլ կարևոր կետ՝ ստեղծել դատարկ index.txt ֆայլ, առանց այս ֆայլի «openSSL ca…» հրամանները չեն աշխատի:
Դուք նաև պետք է ունենաք սերիական ֆայլ, արմատային անձնական բանալի (ca.key), արմատային վկայագիր (ca.crt): Այս ֆայլերի ստացման գործընթացը կներկայացվի ստորև:
Մենք միացնում ենք Rutoken-ի կողմից տրամադրված գաղտնագրման ալգորիթմները:
Այս կապը տեղի է ունենում openssl.cfg ֆայլում:
Առաջին հերթին անհրաժեշտ է ներբեռնել Rutoken-ի անհրաժեշտ ալգորիթմները։ Սրանք rtengine.dll, rtpkcs11ecp.dll ֆայլերն են:
Դա անելու համար ներբեռնեք Rutoken SDK-ն. www.rutoken.ru/developers/sdk.
Rutoken SDK-ն այն ծրագրավորողների համար է, ովքեր ցանկանում են փորձել Rutoken-ը: Կան երկու առանձին օրինակներ Rutoken-ի հետ աշխատելու տարբեր ծրագրավորման լեզուներով, և ներկայացված են որոշ գրադարաններ։ Մեր գրադարանները rtengine.dll և rtpkcs11ecp.dll գտնվում են Rutoken sdk-ում, համապատասխանաբար, այն վայրում.
Շատ կարևոր կետ. rtengine.dll, rtpkcs11ecp.dll գրադարանները չեն աշխատում առանց Rutoken-ի համար տեղադրված դրայվերի: Նաև Rutoken-ը պետք է միացված լինի համակարգչին։ (Rutoken-ի համար անհրաժեշտ ամեն ինչ տեղադրելու համար տե՛ս հոդվածի նախորդ մասը habr.com/en/post/506450)
rtengine.dll և rtpkcs11ecp.dll գրադարանները կարող են պահվել օգտատիրոջ հաշվի ցանկացած վայրում:
Մենք գրում ենք դեպի այս գրադարանների ուղիները openssl.cfg-ում: Դա անելու համար բացեք openssl.cfg ֆայլը, դրեք տողը այս ֆայլի սկզբում.
dynamic_path - դուք պետք է նշեք ձեր ուղին դեպի rtengine.dll գրադարան:
MODULE_PATH - դուք պետք է սահմանեք ձեր ճանապարհը դեպի rtpkcs11ecp.dll գրադարան:
Շրջակա միջավայրի փոփոխականների ավելացում:
Համոզվեք, որ ավելացրեք շրջակա միջավայրի փոփոխական, որը սահմանում է դեպի openssl.cfg կազմաձևման ֆայլի ուղին: Իմ դեպքում, OPENSSL_CONF փոփոխականը ստեղծվել է C:Program FilesOpenSSL-Win64binopenssl.cfg ճանապարհով:
Path փոփոխականում դուք պետք է նշեք ուղին դեպի այն թղթապանակը, որտեղ գտնվում է openssl.exe-ն, իմ դեպքում դա է՝ C: Program FilesOpenSSL-Win64bin:
Այժմ կարող եք վերադառնալ քայլ 5 և ստեղծել բացակայող ֆայլերը demoCA գրացուցակի համար:
Առաջին կարևոր ֆայլը, առանց որի ոչինչ չի աշխատի, սերիալն է: Սա ֆայլ է առանց ընդլայնման, որի արժեքը պետք է լինի 01: Դուք կարող եք ինքներդ ստեղծել այս ֆայլը և ներսում գրել 01: Կարող եք նաև ներբեռնել այն Rutoken SDK-ից sdk/openssl/rtengine/samples/tool/demoCA ճանապարհով: /.
DemoCA գրացուցակը պարունակում է սերիական ֆայլ, որը հենց այն է, ինչ մեզ անհրաժեշտ է:
Ստեղծեք արմատային անձնական բանալի:
Դա անելու համար մենք կօգտագործենք openSSL գրադարանի հրամանը, որը պետք է գործարկվի անմիջապես հրամանի տողում.
Մենք ստեղծում ենք արմատային վկայագիր:
Դա անելու համար օգտագործեք հետևյալ openSSL գրադարանի հրամանը.
openssl req -utf8 -x509 -key ca.key -out ca.crt
Խնդրում ենք նկատի ունենալ, որ արմատային անձնական բանալին, որը ստեղծվել է նախորդ քայլում, անհրաժեշտ է արմատային վկայագրի ստեղծման համար: Հետևաբար, հրամանի տողը պետք է գործարկվի նույն գրացուցակում:
Այժմ ամեն ինչ ունի բոլոր բացակայող ֆայլերը demoCA գրացուցակի ամբողջական կազմաձևման համար: Ստեղծված ֆայլերը տեղադրեք 5-րդ կետում նշված գրացուցակներում։
Մենք կենթադրենք, որ բոլոր 8 կետերն ավարտելուց հետո մեր սերտիֆիկացման կենտրոնը լիովին կազմաձևված է:
Հաջորդ մասում ես նկարագրելու եմ, թե ինչպես ենք մենք աշխատելու սերտիֆիկացման մարմնի հետ, որպեսզի իրականացնենք այն, ինչ նկարագրված է. հոդվածի նախորդ մասը.