සුභ සන්ධ්යාවක් අපි මෙම මාතෘකාව සමඟ ඉදිරියට යමු
අද අපි ප්රායෝගික කොටස වෙත යමු. සම්පූර්ණ විවෘත කේත ගුප්ත ලේඛන පුස්තකාලය openSSL මත පදනම්ව අපගේ CA පිහිටුවීමෙන් ආරම්භ කරමු. මෙම ඇල්ගොරිතම වින්ඩෝස් 7 භාවිතයෙන් පරීක්ෂා කර ඇත.
OpenSSL ස්ථාපනය කර ඇති විට, අපට විධාන රේඛාව හරහා විවිධ ගුප්ත ලේඛන මෙහෙයුම් (යතුරු සහ සහතික සෑදීම වැනි) සිදු කළ හැක.
ක්රියාවන්හි ඇල්ගොරිතම පහත පරිදි වේ:
- ස්ථාපන බෙදාහැරීම openssl-1.1.1g බාගන්න.
openSSL හි විවිධ අනුවාද ඇත. Rutoken සඳහා වන ලේඛනවල openSSL අනුවාදය 1.1.0 හෝ නව අනුවාදය අවශ්ය බව පැවසීය. මම openssl-1.1.1g අනුවාදය භාවිතා කළා. ඔබට නිල වෙබ් අඩවියෙන් openSSL බාගත කළ හැකිය, නමුත් පහසු ස්ථාපනය සඳහා, ඔබ ජාලයේ වින්ඩෝස් සඳහා ස්ථාපන ගොනුව සොයා ගත යුතුය. මම ඔබ වෙනුවෙන් මෙය කළා:slproweb.com/products/Win32OpenSSL.html
පිටුව පහළට අනුචලනය කර Win64 OpenSSL v1.1.1g EXE 63MB ස්ථාපකය බාගන්න. - Openssl-1.1.1g පරිගණකයේ ස්ථාපනය කරන්න.
C: Program Files ෆෝල්ඩරයේ ස්වයංක්රීයව දක්වා ඇති සම්මත මාර්ගයට අනුව ස්ථාපනය සිදු කළ යුතුය. වැඩසටහන OpenSSL-Win64 ෆෝල්ඩරයේ ස්ථාපනය කෙරේ. - ඔබට අවශ්ය ආකාරයට openSSL පිහිටුවීම සඳහා openssl.cfg ගොනුව ඇත. ඔබ පෙර ඡේදයේ විස්තර කර ඇති පරිදි openSSL ස්ථාපනය කර ඇත්නම් මෙම ගොනුව C:\Program Files\OpenSSL-Win64bin මාර්ගයෙහි පිහිටා ඇත. openssl.cfg ගබඩා කර ඇති ෆෝල්ඩරය වෙත ගොස් මෙම ගොනුව විවෘත කරන්න, උදාහරණයක් ලෙස, Notepad++.
- openssl.cfg ගොනුවේ අන්තර්ගතය වෙනස් කිරීමෙන් සහතික කිරීමේ අධිකාරිය කෙසේ හෝ වින්යාස කෙරෙනු ඇතැයි ඔබ අනුමාන කර ඇති අතර ඔබ නියත වශයෙන්ම නිවැරදිය. මෙයට [ca ] විධානය අභිරුචිකරණය කිරීම අවශ්ය වේ. openssl.cfg ගොනුව තුළ, අපි වෙනස්කම් සිදු කරන පාඨයේ ආරම්භය මෙසේ සොයා ගත හැක: [ca ].
- දැන් මම එහි විස්තරය සමඟ සැකසුමක උදාහරණයක් දෙන්නෙමි:
[ 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_cert
දැන් අපි ඉහත උදාහරණයේ පෙන්වා ඇති පරිදි demoCA නාමාවලිය සහ උප බහලුම් නිර්මාණය කළ යුතුය. තවද එය dir හි දක්වා ඇති මාර්ගය ඔස්සේ මෙම නාමාවලියෙහි තබන්න (මා සතුව /පරිශීලකයින්/පරිශීලක නාමය/bin/openSSLca/demoCA ඇත).
dir නිවැරදිව උච්චාරණය කිරීම ඉතා වැදගත් වේ - අපගේ සහතික කිරීමේ මධ්යස්ථානය පිහිටා ඇති නාමාවලියට යන මාර්ගය මෙයයි. මෙම නාමාවලිය පිහිටා තිබිය යුතුය / පරිශීලකයින් (එනම්, සමහර පරිශීලකයින්ගේ ගිණුමේ). ඔබ මෙම නාමාවලිය තැබුවහොත්, උදාහරණයක් ලෙස, C: වැඩසටහන් ගොනු තුළ, පද්ධතිය openssl.cfg සැකසුම් සහිත ගොනුව නොදකිනු ඇත (අවම වශයෙන් එය මට එසේ විය).
$dir - dir හි දක්වා ඇති මාර්ගය මෙහි ආදේශ කර ඇත.
තවත් වැදගත් කරුණක් වන්නේ හිස් index.txt ගොනුවක් සෑදීමයි, මෙම ගොනුව නොමැතිව "openSSL ca ..." විධානයන් ක්රියා නොකරනු ඇත.
ඔබට අනුක්රමික ගොනුවක්, root පුද්ගලික යතුරක් (ca.key), root සහතිකයක් (ca.crt) ද තිබිය යුතුය. මෙම ලිපිගොනු ලබා ගැනීමේ ක්රියාවලිය පහත විස්තර කෙරේ.
- අපි Rutoken විසින් සපයන ලද සංකේතාංකන ඇල්ගොරිතම සම්බන්ධ කරමු.
මෙම සම්බන්ධතාවය openssl.cfg ගොනුවේ සිදු වේ.- මුලින්ම, ඔබ අවශ්ය Rutoken ඇල්ගොරිතම බාගත කළ යුතුය. මේවා rtengine.dll, rtpkcs11ecp.dll ගොනු වේ.
මෙය සිදු කිරීම සඳහා, Rutoken SDK බාගත කරන්න:www.rutoken.ru/developers/sdk .Rutoken උත්සාහ කිරීමට කැමති සංවර්ධකයින් සඳහා Rutoken SDK පමණක් තිබේ. විවිධ ක්රමලේඛන භාෂාවලින් Rutoken සමඟ වැඩ කිරීම සඳහා වෙනම උදාහරණ දෙකම ඇත, සමහර පුස්තකාල ඉදිරිපත් කර ඇත. අපගේ පුස්තකාල rtengine.dll සහ rtpkcs11ecp.dll පිළිවෙලින් Rutoken sdk හි ස්ථානගත කර ඇත:
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllඉතා වැදගත් කරුණක්. Rutoken සඳහා ස්ථාපිත ධාවකය නොමැතිව පුස්තකාල rtengine.dll, rtpkcs11ecp.dll ක්රියා නොකරයි. එසේම Rutoken පරිගණකයට සම්බන්ධ කළ යුතුය. (රුටෝකන් සඳහා ඔබට අවශ්ය සියල්ල ස්ථාපනය කිරීම සඳහා, ලිපියේ පෙර කොටස බලන්න
habr.com/en/post/506450 ) - rtengine.dll සහ rtpkcs11ecp.dll පුස්තකාල පරිශීලක ගිණුමේ ඕනෑම තැනක තබා ගත හැක.
- අපි openssl.cfg හි මෙම පුස්තකාල සඳහා මාර්ග ලියන්නෙමු. මෙය සිදු කිරීම සඳහා, openssl.cfg ගොනුව විවෘත කරන්න, මෙම ගොනුවේ ආරම්භයේ රේඛාව තබන්න:
openssl_conf = openssl_def
ගොනුව අවසානයේ ඔබ එකතු කළ යුතුය:
[ 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, RAND
dynamic_path - ඔබ ඔබේ මාර්ගය rtengine.dll පුස්තකාලය වෙත සඳහන් කළ යුතුය.
MODULE_PATH - ඔබ ඔබේ මාර්ගය rtpkcs11ecp.dll පුස්තකාලය වෙත සැකසිය යුතුය.
- මුලින්ම, ඔබ අවශ්ය Rutoken ඇල්ගොරිතම බාගත කළ යුතුය. මේවා rtengine.dll, rtpkcs11ecp.dll ගොනු වේ.
- පරිසර විචල්ය එකතු කිරීම.
openssl.cfg වින්යාස ගොනුව වෙත මාර්ගය සඳහන් කරන පරිසර විචල්යයක් එක් කිරීමට වග බලා ගන්න. මගේ නඩුවේදී, OPENSSL_CONF විචල්යය නිර්මාණය කර ඇත්තේ C:Program FilesOpenSSL-Win64binopenssl.cfg මාර්ගයෙනි.
මාර්ග විචල්යයේ, ඔබ openssl.exe පිහිටා ඇති ෆෝල්ඩරය වෙත මාර්ගය සඳහන් කළ යුතුය, මගේ නඩුවේදී එය: C: Program FilesOpenSSL-Win64bin.
- දැන් ඔබට 5 වන පියවර වෙත ආපසු ගොස් demoCA නාමාවලිය සඳහා නැතිවූ ගොනු සෑදිය හැක.
- කිසිවක් ක්රියා නොකරන පළමු වැදගත් ගොනුව අනුක්රමික වේ. මෙය දිගුවක් නොමැති ගොනුවක් වන අතර එහි අගය 01 විය යුතුය. ඔබට මෙම ගොනුව ඔබම සාදා ඇතුළත 01 ලිවිය හැක. ඔබට Rutoken SDK වෙතින් sdk/openssl/rtengine/samples/tool/demoCA යන මාර්ගය ඔස්සේ බාගත කළ හැක. /.
demoCA ඩිරෙක්ටරියේ අනුක්රමික ගොනුව අඩංගු වේ, එය හරියටම අපට අවශ්ය වේ. - Root පුද්ගලික යතුරක් සාදන්න.
මෙය සිදු කිරීම සඳහා, අපි openSSL පුස්තකාල විධානය භාවිතා කරන්නෙමු, එය විධාන රේඛාව මත කෙලින්ම ධාවනය කළ යුතුය:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key
- අපි මූල සහතිකයක් සාදන්නෙමු.
මෙය සිදු කිරීම සඳහා, පහත openSSL පුස්තකාල විධානය භාවිතා කරන්න:openssl req -utf8 -x509 -key ca.key -out ca.crt
පෙර පියවරේදී උත්පාදනය කරන ලද root පුද්ගලික යතුර මූල සහතිකය ජනනය කිරීමට අවශ්ය බව කරුණාවෙන් සලකන්න. එබැවින්, විධාන රේඛාව එකම නාමාවලියෙහි දියත් කළ යුතුය.
demoCA ඩිරෙක්ටරියේ සම්පූර්ණ වින්යාසය සඳහා දැන් සෑම දෙයකම නැතිවූ ලිපිගොනු ඇත. සාදන ලද ගොනු 5 වන ස්ථානයේ දක්වා ඇති නාමාවලි තුළ තබන්න.
- කිසිවක් ක්රියා නොකරන පළමු වැදගත් ගොනුව අනුක්රමික වේ. මෙය දිගුවක් නොමැති ගොනුවක් වන අතර එහි අගය 01 විය යුතුය. ඔබට මෙම ගොනුව ඔබම සාදා ඇතුළත 01 ලිවිය හැක. ඔබට Rutoken SDK වෙතින් sdk/openssl/rtengine/samples/tool/demoCA යන මාර්ගය ඔස්සේ බාගත කළ හැක. /.
සියලුම කරුණු 8 සම්පූර්ණ කිරීමෙන් පසු අපගේ සහතික කිරීමේ මධ්යස්ථානය සම්පූර්ණයෙන්ම වින්යාස කර ඇති බව අපි උපකල්පනය කරමු.
ඊළඟ කොටසේදී, විස්තර කර ඇති දේ ඉටු කිරීම සඳහා අපි සහතික කිරීමේ අධිකාරිය සමඟ කටයුතු කරන්නේ කෙසේද යන්න විස්තර කරමි.
මූලාශ්රය: www.habr.com