Өдрийн мэнд Энэ сэдвээ үргэлжлүүлье
Өнөөдөр бид практик хэсэг рүү шилжиж байна. Бүрэн эрхт нээлттэй эхийн openSSL криптограф номын сан дээр тулгуурлан CA-г байгуулж эхэлцгээе. Энэ алгоритмыг Windows 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-д заасан замын дагуу энэ директорт байрлуул (Надад /Users/username/bin/openSSLca/demoCA байна).
Dir-г зөв бичих нь маш чухал - энэ бол манай гэрчилгээжүүлэх төв байрлах лавлах руу очих зам юм. Энэ лавлах нь /Users (өөрөөр хэлбэл зарим хэрэглэгчийн дансанд) байх ёстой. Хэрэв та энэ лавлахыг жишээ нь C: Program Files дотор байрлуулбал систем 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 SDK нь Rutoken-г туршиж үзэхийг хүсч буй хөгжүүлэгчдэд зориулагдсан бүх зүйл юм. Янз бүрийн програмчлалын хэл дээр 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 нь компьютерт холбогдсон байх ёстой. (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 лавлах нь цуваа файлыг агуулдаг бөгөөд энэ нь бидэнд яг хэрэгтэй зүйл юм. - Үндсэн хувийн түлхүүр үүсгэх.
Үүнийг хийхийн тулд бид тушаалын мөрөнд шууд ажиллах ёстой openSSL номын сангийн командыг ашиглах болно.openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key
- Бид үндсэн гэрчилгээ үүсгэдэг.
Үүнийг хийхийн тулд дараах openSSL номын сангийн командыг ашиглана уу:openssl req -utf8 -x509 -key ca.key -out ca.crt
Эх гэрчилгээг үүсгэхийн тулд өмнөх алхамд үүсгэсэн үндсэн хувийн түлхүүр шаардлагатайг анхаарна уу. Тиймээс командын мөрийг нэг директор дотор ажиллуулах ёстой.
Одоо бүх зүйлд demoCA лавлахын бүрэн тохиргоонд дутуу байгаа файлууд байна. Үүсгэсэн файлуудыг 5-р зүйлд заасан сангуудад байрлуул.
- Юу ч ажиллахгүй эхний чухал файл бол цуваа юм. Энэ нь өргөтгөлгүй файл бөгөөд утга нь 01 байх ёстой. Та өөрөө энэ файлыг үүсгээд дотор нь 01 гэж бичиж болно. Мөн Rutoken SDK-с sdk/openssl/rtengine/samples/tool/demoCA зам дагуу татаж авч болно. /.
Бүх 8 оноог бөглөсний дараа манай гэрчилгээжүүлэх төв бүрэн тохируулагдсан гэж бид таамаглах болно.
Дараагийн хэсэгт би гэрчилгээжүүлэх байгууллагатай хэрхэн ажиллах талаар тайлбарлах болно.
Эх сурвалж: www.habr.com