Hari ini kita beralih ke bahagian praktikal. Mari mulakan dengan menyediakan CA kami berdasarkan openSSL perpustakaan kriptografi sumber terbuka penuh. Algoritma ini telah diuji menggunakan windows 7.
Dengan openSSL dipasang, kami boleh melakukan pelbagai operasi kriptografi (seperti mencipta kunci dan sijil) melalui baris arahan.
Algoritma tindakan adalah seperti berikut:
Muat turun pengedaran pemasangan openssl-1.1.1g.
openSSL mempunyai versi yang berbeza. Dokumentasi untuk Rutoken mengatakan bahawa openSSL versi 1.1.0 atau lebih baru diperlukan. Saya menggunakan versi openssl-1.1.1g. Anda boleh memuat turun openSSL dari tapak rasmi, tetapi untuk pemasangan yang lebih mudah, anda perlu mencari fail pemasangan untuk tingkap di internet. Saya melakukan ini untuk anda: slproweb.com/products/Win32OpenSSL.html
Tatal ke bawah halaman dan muat turun Win64 OpenSSL v1.1.1g EXE 63MB Installer.
Pasang openssl-1.1.1g pada komputer.
Pemasangan mesti dijalankan mengikut laluan standard, yang secara automatik ditunjukkan dalam folder C: Program Files. Program ini akan dipasang dalam folder OpenSSL-Win64.
Untuk menyediakan openSSL seperti yang anda perlukan, terdapat fail openssl.cfg. Fail ini terletak di laluan C:Program FilesOpenSSL-Win64bin jika anda memasang openSSL seperti yang diterangkan dalam perenggan sebelumnya. Pergi ke folder tempat openssl.cfg disimpan dan buka fail ini menggunakan, sebagai contoh, Notepad++.
Anda mungkin meneka bahawa pihak berkuasa pensijilan akan dikonfigurasikan entah bagaimana dengan menukar kandungan fail openssl.cfg, dan anda betul sekali. Ini memerlukan penyesuaian perintah [ ca ]. Dalam fail openssl.cfg, permulaan teks di mana kita akan membuat perubahan boleh didapati sebagai: [ ca ].
Sekarang saya akan memberikan contoh tetapan dengan penerangannya:
Sekarang kita perlu mencipta direktori demoCA dan subdirektori seperti yang ditunjukkan dalam contoh di atas. Dan letakkannya dalam direktori ini di sepanjang laluan yang ditentukan dalam dir (saya ada /Users/username/bin/openSSLca/demoCA).
Adalah sangat penting untuk mengeja dir dengan betul - ini ialah laluan ke direktori tempat pusat pensijilan kami akan ditempatkan. Direktori ini mesti terletak di /Users (iaitu, dalam akaun sesetengah pengguna). Jika anda meletakkan direktori ini, sebagai contoh, dalam C: Program Files, sistem tidak akan melihat fail dengan tetapan openssl.cfg (sekurang-kurangnya ia adalah seperti itu untuk saya).
$dir - laluan yang dinyatakan dalam dir digantikan di sini.
Satu lagi perkara penting ialah membuat fail index.txt kosong, tanpa fail ini arahan "openSSL ca ..." tidak akan berfungsi.
Anda juga perlu mempunyai fail bersiri, kunci persendirian akar (ca.key), sijil akar (ca.crt). Proses mendapatkan fail ini akan diterangkan di bawah.
Kami menyambungkan algoritma penyulitan yang disediakan oleh Rutoken.
Sambungan ini berlaku dalam fail openssl.cfg.
Pertama sekali, anda perlu memuat turun algoritma Rutoken yang diperlukan. Ini ialah fail rtengine.dll, rtpkcs11ecp.dll.
Untuk melakukan ini, muat turun Rutoken SDK: www.rutoken.ru/developers/sdk.
SDK Rutoken adalah semua yang ada untuk pembangun yang ingin mencuba Rutoken. Terdapat kedua-dua contoh berasingan untuk bekerja dengan Rutoken dalam bahasa pengaturcaraan yang berbeza, dan beberapa perpustakaan dibentangkan. Perpustakaan kami rtengine.dll dan rtpkcs11ecp.dll masing-masing terletak di Rutoken sdk, di lokasi:
Satu perkara yang sangat penting. Perpustakaan rtengine.dll, rtpkcs11ecp.dll tidak berfungsi tanpa pemacu yang dipasang untuk Rutoken. Juga Rutoken mesti disambungkan ke komputer. (untuk memasang semua yang anda perlukan untuk Rutoken, lihat bahagian sebelumnya artikel habr.com/ms/post/506450)
Pustaka rtengine.dll dan rtpkcs11ecp.dll boleh disimpan di mana-mana dalam akaun pengguna.
Kami menulis laluan ke perpustakaan ini dalam openssl.cfg. Untuk melakukan ini, buka fail openssl.cfg, letakkan baris pada permulaan fail ini:
dynamic_path - anda mesti menentukan laluan anda ke perpustakaan rtengine.dll.
MODULE_PATH - anda perlu menulis laluan anda ke perpustakaan rtpkcs11ecp.dll.
Menambah pembolehubah persekitaran.
Pastikan anda menambah pembolehubah persekitaran yang menentukan laluan ke fail konfigurasi openssl.cfg. Dalam kes saya, pembolehubah OPENSSL_CONF telah dicipta dengan laluan C:Program FilesOpenSSL-Win64binopenssl.cfg.
Dalam pembolehubah laluan, anda mesti menentukan laluan ke folder di mana openssl.exe terletak, dalam kes saya ia adalah: C: Program FilesOpenSSL-Win64bin.
Kini anda boleh kembali ke langkah 5 dan mencipta fail yang hilang untuk direktori demoCA.
Fail penting pertama yang tanpanya tiada apa yang akan berfungsi adalah bersiri. Ini ialah fail tanpa sambungan, yang nilainya hendaklah 01. Anda boleh mencipta fail ini sendiri dan menulis 01 di dalamnya. Anda juga boleh memuat turunnya daripada Rutoken SDK di sepanjang laluan sdk/openssl/rtengine/samples/tool/demoCA /.
Direktori demoCA mengandungi fail bersiri, iaitu apa yang kami perlukan.
Buat kunci peribadi akar.
Untuk melakukan ini, kami akan menggunakan arahan perpustakaan openSSL, yang mesti dijalankan terus pada baris arahan:
Kami membuat sijil akar.
Untuk melakukan ini, gunakan arahan perpustakaan openSSL berikut:
openssl req -utf8 -x509 -key ca.key -out ca.crt
Sila ambil perhatian bahawa kunci persendirian akar, yang dijana dalam langkah sebelumnya, diperlukan untuk menjana sijil akar. Oleh itu, baris arahan mesti dilancarkan dalam direktori yang sama.
Semuanya kini mempunyai semua fail yang hilang untuk konfigurasi lengkap direktori demoCA. Letakkan fail yang dibuat dalam direktori yang ditunjukkan dalam titik 5.
Kami akan menganggap bahawa selepas melengkapkan kesemua 8 mata, pusat pensijilan kami dikonfigurasikan sepenuhnya.
Dalam bahagian seterusnya, saya akan menerangkan cara kami akan bekerjasama dengan pihak berkuasa pensijilan untuk mencapai perkara yang diterangkan dalam bahagian sebelumnya artikel.