ื ืืืื ืืืืื ืืึธืืืจ ืคืึธืจืืขืฆื ืฆื ืืึทื ืืืขื ืืื ืืขื ืืขืืข (
ืืืึทื ื ืืึธืืืจ ืืืื ืืืืฃ ืฆื ืื ืคึผืจืึทืงืืืฉ ืืืื. ืืึธืืืจ ืึธื ืืืืื ืืื ืืึทืฉืืขืืืงื ืืืื ืืึทืืืืึทืื ืืืืืึธืจืืืขื ืืืืืจื ืืืืฃ ืื ืคืื-ืคืืขืืืฉื ืขืคึฟืขื ืขื-ืืงืืจ ืงืจืืคึผืืึธืืจืึทืคืืง ืืืืืืึธืืขืง ืึธืคึผืขื ืกืกื. ืืขื ืึทืืืขืจืืืึทื ืืื ืืขืกืืขื ืืื Windows 7.
ืืื OpenSSL ืืื ืกืืึทืืืจื, ืืืจ ืงืขื ืขื ืืืจืืคืืจื ืคืึทืจืฉืืื ืงืจืืคึผืืึธืืจืึทืคืืง ืึทืคึผืขืจืืืฉืึทื ื (ืึทืืึท ืืื ืืืฉืขื ืขืจืืืืื ื ืฉืืืกืืขื ืืื ืกืขืจืืืคืืงืึทืฅ) ืืืจื ืื ืืึทืคึฟืขืื ืฉืืจื.
ืื ืึทืืืขืจืืืึทื ืคืื ืึทืงืฉืึทื ื ืืื ืืื ืืืื:
- ืืจืืคืงืืคืืข ืื ืืึทื ืืึธื ืืืจืื ื ืคืึทืจืฉืคึผืจืืืืื ื openssl-1.1.1g.
openSSL ืืื ืคืึทืจืฉืืืขื ืข ืืืขืจืกืืขืก. ืื ืืึทืงืืืืขื ืืืืฉืึทื ืคึฟืึทืจ Rutoken ืกืืืืืื ืึทื openSSL ืืืขืจืกืืข 1.1.0 ืึธืืขืจ ืฉืคึผืขืืขืจ ืืื ืคืืจืืื ืื. ืืื ืืขืืืืื ื ืึธืคึผืขื ืกืกื-1.1.1ื ืืืขืจืกืืข. ืืืจ ืงืขื ืขื ืืจืืคืงืืคืืข openSSL ืคึฟืื ืืขืจ ืืึทืึทืืืขืจ ืืืขืืืืืื, ืึธืืขืจ ืคึฟืึทืจ ืึท ืืจืื ืืขืจ ืืึทื ืืึธื ืืืจืื ื ืืืจ ืืึทืจืคึฟื ืฆื ืืขืคึฟืื ืขื ืื ืืึทื ืืึธื ืืืจืื ื ืืขืงืข ืคึฟืึทืจ Windows ืืืืฃ ืืขืจ ืืื ืืขืจื ืขืฅ. ืืื ืืื ืืืก ืืขืืื ืคืืจ ืืืจ:slproweb.com/products/Win32OpenSSL.html
ืืืจ ืืึทืจืคึฟื ืฆื ืืขืืืืข ืฆื ืื ืื ืึธ ืคืื ืื ืืืึทื ืืื ืืจืืคืงืืคืืข Win64 OpenSSL v1.1.1g EXE 63MB ืื ืกืืึทืืืขืจ. - ืื ืกืืึทืืืจื openssl-1.1.1g ืืืืฃ ืืืื ืงืึธืืคึผืืืืขืจ.
ืื ืืึทื ืืึธื ืืืจืื ื ืืืื ืืืื ืืืจืืืขืงืึธืื ืืื ืื ื ืึธืจืืึทื ืืจื, ืืืึธืก ืืื ืืืืืึธืืึทืืืฉ ืกืคึผืขืกืืคืืขื ืืื ืื C: ืคึผืจืึธืืจืึทื ืคืืืขืก ืืขืงืข. ืืขืจ ืคึผืจืึธืืจืึทื ืืืขื ืืืื ืืื ืกืืึทืืืจื ืืื ืื OpenSSL-Win64 ืืขืงืข. - ืืื ืกืืจ ืฆื ืงืึทื ืคืืืืขืจ openSSL ืืื ืืืจ ืืึทืจืคึฟื, ืขืก ืืื ืึท ืืขืงืข openssl.cfg. ืืขืจ ืืขืงืข ืืื ืืืื ืืื ืืขื ืืจื C: Program FilesOpenSSL-Win64bin ืืืื ืืืจ ืืื ืกืืึทืืืจื ืึธืคึผืขื ืกืกื ืืื ืืืกืงืจืืืื ืืื ืื ืคืจืืขืจืืืงืข ืคึผืึทืจืึทืืจืึทืฃ. ืืืื ืฆื ืืขืจ ืืขืงืข ืืื openssl.cfg ืืื ืกืืึธืจื ืืื ืขืคึฟืขื ืขื ืืขื ืืขืงืข ื ืืฆื, ืืืฉื, ื ืึธืืขืคึผืึทื ++.
- ืืืจ ืืืกืืึธืืข ืืขืกื ืึทื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืคืื ืื ืกืขืจืืึทืคืึทืงืืืฉืึทื ืฆืขื ืืขืจ ืืืขื ืืืื ืืขืืื ืืืจื ืขืคืขืก ืืฉืึทื ืืื ื ืื ืืื ืืึทืื ืคืื ืื 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
ืืืฆื ืืืจ ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืื ืืขืืึธืงืึท ืืืขืืืืืึทืืขืจ ืืื ืกืืืืืจืขืงืืึธืจืืขืก, ืืื ืืขืืืืื ืืื ืืขื ืืืึทืฉืคึผืื ืืืืื. ืืื ืฉืืขืื ืขืก ืืื ืืขื ืืืขืืืืืึทืืขืจ ืฆืืืืืขื ืืขื ืืจื ืกืคึผืขืกืืคืืขื ืืื ืืืจ (ืืื ืืึธืื /Users/Username/bin/openSSLca/demoCA).
ืขืก ืืื ืืืืขืจ ืืืืืืืง ืฆื ืึทืจืืึทื ืืืจ ืจืืืืืง - ืืึธืก ืืื ืืขืจ ืืืขื ืฆื ืืขืจ ืืืขืืืืืึทืืขืจ ืืื ืืื ืืืขืจ ืกืขืจืืึทืคืึทืงืืืฉืึทื ืืืืืึธืจืืืขื ืืืขื ืืืื ืืืื. ืืขืจ ืืืขืืืืืึทืืขืจ ืืืื ืืืื ืืืื ืืื / ืืืืขืจื (ืืึธืก ืืื, ืืื ืึท ืืึทื ืืฆืขืจ ืืฉืืื). ืืืื ืืืจ ืฉืืขืื ืืขื ืืืขืืืืืึทืืขืจ, ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืื C: ืคึผืจืึธืืจืึทื ืคืืืขืก, ืื ืกืืกืืขื ืืืขื ื ืืฉื ืืขื ืื ืึธืคึผืขื ืกืกื.ืงืคื ืกืขืืืื ืืก ืืขืงืข (ืืืึท ืืื ืืกืืขืจ ืืึธืก ืืื ืืขืืืขื ืคึฟืึทืจ ืืืจ).
$dir - ืืขืจ ืืจื ืกืคึผืขืกืืคืืขื ืืื ืืืจ ืืื ืกืึทืืกืืึทืืืืึทื ืืึธ.
ืื ืื ืืขืจ ืืืืืืืง ืคืื ื ืืื ืฆื ืฉืึทืคึฟื ืึท ืืืืืืง index.txt ืืขืงืข; ืึธื ืืขื ืืขืงืข, ืื "openSSL ca ..." ืงืึทืืึทื ืื ืืืขื ื ืืฉื ืึทืจืืขืื.
ืืืจ ืืืื ืืึทืจืคึฟื ืฆื ืืึธืื ืึท ืกืืจืืึทื ืืขืงืข, ืึท ืืืึธืจืฆื ืคึผืจืืืืึทื ืฉืืืกื (ca.key) ืืื ืึท ืืืึธืจืฆื ืืึทืืืืึทืื (ca.crt). ืืขืจ ืคึผืจืึธืฆืขืก ืคืื ืงืจืืื ืื ืืขืงืขืก ืืืขื ืืืื ืืืกืงืจืืืื ืืื ืื.
- ืืืจ ืืขืื ืขื ืงืจืืคึผืฉืึทื ืึทืืืขืจืืืึทืื ืฆืืืขืฉืืขืื ืืืจื Rutoken.
ืืขืจ ืงืฉืจ ืึทืงืขืจื ืืื ืื ืึธืคึผืขื ืกืกื.ืงืคื ืืขืงืข.- ืขืจืฉืืขืจ ืคืื ืึทืืข, ืืืจ ืืึทืจืคึฟื ืฆื ืึธืคึผืืึธืืืจื ืื ื ืืืืืง 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ื ืืืืขืจ ืืืืืืืง ืคืื ื. ืื ืืืืืจืขืจืื rtengine.dll, rtpkcs11ecp.dll ืืึธื ื ืื ืึทืจืืขืื ืึธื ืื ืืื ืกืืึทืืืจื ืฉืึธืคืขืจ ืคึฟืึทืจ Rutoken. ืืืื, Rutoken ืืืื ืืืื ืงืึธื ื ืขืงืืขื ืฆื ืื ืงืึธืืคึผืืืืขืจ. (ืคึฟืึทืจ ืืึทื ืืึธื ืืืจืื ื ืคืื ืึทืืฅ ื ืืืืืง ืคึฟืึทืจ Rutoken, ืืขื ืื ืคืจืืขืจืืืงืข ืืืื ืคืื ืืขื ืึทืจืืืงื
habr.com/ru/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_CONF ืืืึทืืขืืืืืง ืืื ืืืฉืืคื ืืื ืืขื ืืจื C: Program FilesOpenSSL-Win64binopenssl.cfg.
ืืขืจ ืืืขื ืืืึทืืขืืืืืง ืืืื ืึทื ืืืึทืืื ืืขื ืืจื ืฆื ืืขืจ ืืขืงืข ืืื openssl.exe ืืื ืืืื, ืืื ืืืื ืคืึทื ืขืก ืืื: C: Program FilesOpenSSL-Win64bin.
- ืืืฆื ืืืจ ืงืขื ืขื ืฆืืจืืงืงืืืขื ืฆื ืฉืจืื 5 ืืื ืืึทืื ืื ืคืขืื ืืืง ืืขืงืขืก ืคึฟืึทืจ ืื ืืขืืึธืงืึท ืืืขืืืืืึทืืขืจ.
- ืืขืจ ืขืจืฉืืขืจ ืืืืืืืง ืืขืงืข ืึธื ืืืึธืก ืืึธืจื ืืฉื ืืืขื ืึทืจืืขืื ืืื ืกืืจืืึทื. ืืึธืก ืืื ืึท ืืขืงืข ืึธื ืึท ืคืึทืจืืขื ืืขืจืื ื, ืื ืืืขืจื ืคืื ืืืึธืก ืืึธื ืืืื 01. ืืืจ ืงืขื ืขื ืืึทืื ืืขื ืืขืงืข ืืื ืืื ืฉืจืืึทืื 01 ืื. ืืืจ ืงืขื ืขื ืืืื ืืจืืคืงืืคืืข ืขืก ืคืื ืื Rutoken SDK ืืืืฃ ืื ืืจื sdk/openssl/rtengine/samples/tool/demoCA /.
ืืื ืื ืืขืืึธืงืึท ืืืขืืืืืึทืืขืจ ืขืก ืืื ืึท ืกืืจืืึทื ืืขืงืข, ืืืึธืก ืืื ืคึผืื ืงื ืืืึธืก ืืืจ ืืึทืจืคึฟื. - ืฉืึทืคึฟื ืึท ืืืึธืจืฆื ืคึผืจืืืืึทื ืฉืืืกื.
ืฆื ืืึธื ืืึธืก, ืืืจ ืืืขืื ื ืืฆื ืื openSSL ืืืืืืึธืืขืง ืืึทืคึฟืขื, ืืืึธืก ืืืื ืืืื ืืืืคื ืืืืึทื ืืืืฃ ืื ืืึทืคึฟืขืื ืฉืืจื:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key
- ืฉืึทืคึฟื ืึท ืืืึธืจืฆื ืืึทืืืืึทืื.
ืฆื ืืึธื ืืึธืก, ืืืจ ืืืขืื ื ืืฆื ืื ืคืืืืขื ืืข ืืึทืคึฟืขื ืคืื ืื openSSL ืืืืืืึธืืขืง:openssl req -utf8 -x509 -key ca.key -out ca.crt
ืืืืข ืืึธื ืึทื ืฆื ืฉืึทืคึฟื ืึท ืืืึธืจืฆื ืืึทืืืืึทืื, ืืืจ ืืึทืจืคึฟื ืื ืืืึธืจืฆื ืคึผืจืืืืึทื ืฉืืืกื, ืืืึธืก ืืื ืืขืืืขื ืืืฉืืคื ืืื ืื ืคืจืืขืจืืืงืข ืฉืจืื. ืืขืจืืืขืจ, ืื ืืึทืคึฟืขื ืฉืืจื ืืืื ืืืื ืืึธื ืืฉื ืืื ืืขืจ ืืขืืืืงืขืจ ืืืขืืืืืึทืืขืจ.
ืื ืื ืคืขืื ืืืง ืืขืงืขืก ืคึฟืึทืจ ืื ืืึทื ืฅ ืงืึทื ืคืืืืขืจืืืฉืึทื ืคืื ืื ืืขืืึธืงืึท ืืืขืืืืืึทืืขืจ ืืขื ืขื ืืืฆื ืื ืืืฆื. ืฉืืขืื ืื ืืืฉืืคื ืืขืงืขืก ืืื ืื ืืืจืขืงืืขืจืื ืกืคึผืขืกืืคืืขื ืืื ืฉืจืื 5.
- ืืขืจ ืขืจืฉืืขืจ ืืืืืืืง ืืขืงืข ืึธื ืืืึธืก ืืึธืจื ืืฉื ืืืขื ืึทืจืืขืื ืืื ืกืืจืืึทื. ืืึธืก ืืื ืึท ืืขืงืข ืึธื ืึท ืคืึทืจืืขื ืืขืจืื ื, ืื ืืืขืจื ืคืื ืืืึธืก ืืึธื ืืืื 01. ืืืจ ืงืขื ืขื ืืึทืื ืืขื ืืขืงืข ืืื ืืื ืฉืจืืึทืื 01 ืื. ืืืจ ืงืขื ืขื ืืืื ืืจืืคืงืืคืืข ืขืก ืคืื ืื Rutoken SDK ืืืืฃ ืื ืืจื sdk/openssl/rtengine/samples/tool/demoCA /.
ืืืจ ืืืขืื ืืืขืจื ืขืืขื ืึทื ื ืึธื ืงืึทืืคึผืืืืื ื ืึทืืข 8 ืคืื ืงืื, ืืื ืืืขืจ ืกืขืจืืึทืคืึทืงืืืฉืึทื ืฆืขื ืืขืจ ืืื ืืึธืจ ืงืึทื ืคืืืืขืจื.
ืืื ืืขืจ ืืืืึทืืขืจ ืืืื ืืื ืืืขื ืืึธืื ืืืจ ืืื ืืืจ ืืืขืื ืึทืจืืขืื ืืื ืื ืกืขืจืืึทืคืึทืงืืืฉืึทื ืืืืืึธืจืืืขื ืฆื ืืืกืคืืจื ืืืึธืก ืืื ืืืกืงืจืืืื ืืื
ืืงืืจ: www.habr.com