ื ื™ืกื™ื•ืŸ ื‘ืฉื™ืžื•ืฉ ื‘ื˜ื›ื ื•ืœื•ื’ื™ื™ืช Rutoken ืœืจื™ืฉื•ื ื•ื”ืจืฉืื” ืฉืœ ืžืฉืชืžืฉื™ื ื‘ืžืขืจื›ืช (ื—ืœืง 2)

ืื—ืจ ื”ืฆื”ืจื™ื™ื ื˜ื•ื‘ื™ื ื‘ื•ืื• ื ืžืฉื™ืš ืขื ื”ื ื•ืฉื ื”ื–ื”ืืช ื”ื—ืœืง ื”ืงื•ื“ื ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืงื™ืฉื•ืจ).

ื”ื™ื•ื ื ืขื‘ื•ืจ ืœื—ืœืง ื”ืžืขืฉื™. ื ืชื—ื™ืœ ื‘ื”ื’ื“ืจืช CA ืฉืœื ื• ื‘ื”ืชื‘ืกืก ืขืœ ืกืคืจื™ื™ืช ื”ื”ืฆืคื ื” ื”ืžืœืื” ื‘ืงื•ื“ ืคืชื•ื— openSSL. ืืœื’ื•ืจื™ืชื ื–ื” ื ื‘ื“ืง ื‘ืืžืฆืขื•ืช Windows 7.

ื›ืืฉืจ openSSL ืžื•ืชืงืŸ, ืื ื• ื™ื›ื•ืœื™ื ืœื‘ืฆืข ืคืขื•ืœื•ืช ืงืจื™ืคื˜ื•ื’ืจืคื™ื•ืช ืฉื•ื ื•ืช (ื›ื’ื•ืŸ ื™ืฆื™ืจืช ืžืคืชื—ื•ืช ื•ืชืขื•ื“ื•ืช) ื‘ืืžืฆืขื•ืช ืฉื•ืจืช ื”ืคืงื•ื“ื”.

ืืœื’ื•ืจื™ืชื ื”ืคืขื•ืœื•ืช ื”ื•ื ื›ื“ืœืงืžืŸ:

  1. ื”ื•ืจื“ ืืช ื”ืคืฆืช ื”ื”ืชืงื ื” 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 Installer.
  2. ื”ืชืงืŸ openssl-1.1.1g ื‘ืžื—ืฉื‘.
    ื”ื”ืชืงื ื” ื—ื™ื™ื‘ืช ืœื”ืชื‘ืฆืข ืœืคื™ ื”ื ืชื™ื‘ ื”ืกื˜ื ื“ืจื˜ื™, ืฉืžืฆื•ื™ืŸ ืื•ื˜ื•ืžื˜ื™ืช ื‘ืชื™ืงื™ื™ืช C: Program Files. ื”ืชื•ื›ื ื™ืช ืชื•ืชืงืŸ ื‘ืชื™ืงื™ื™ืช OpenSSL-Win64.
  3. ืขืœ ืžื ืช ืœื”ื’ื“ื™ืจ ืืช openSSL ื›ืคื™ ืฉืืชื” ืฆืจื™ืš, ื™ืฉ ืืช ื”ืงื•ื‘ืฅ openssl.cfg. ืงื•ื‘ืฅ ื–ื” ืžืžื•ืงื ื‘ื ืชื™ื‘ C:\Program Files\OpenSSL-Win64bin ืื ื”ืชืงื ืช ืืช openSSL ื›ืžืชื•ืืจ ื‘ืคืกืงื” ื”ืงื•ื“ืžืช. ืขื‘ื•ืจ ืœืชื™ืงื™ื” ืฉื‘ื” ืžืื•ื—ืกืŸ openssl.cfg ื•ืคืชื— ืืช ื”ืงื•ื‘ืฅ ื”ื–ื” ื‘ืืžืฆืขื•ืช, ืœืžืฉืœ, Notepad++.
  4. ื‘ื˜ื— ื ื™ื—ืฉืชื ืฉืจืฉื•ืช ื”ืื™ืฉื•ืจื™ื ืชื•ื’ื“ืจ ืื™ื›ืฉื”ื• ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ื”ืชื•ื›ืŸ ืฉืœ ื”ืงื•ื‘ืฅ openssl.cfg, ื•ืืชื ืฆื•ื“ืงื™ื ืœื—ืœื•ื˜ื™ืŸ. ื–ื” ื“ื•ืจืฉ ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืคืงื•ื“ื” [ca]. ื‘ืงื•ื‘ืฅ openssl.cfg, ื ื™ืชืŸ ืœืžืฆื•ื ืืช ืชื—ื™ืœืช ื”ื˜ืงืกื˜ ืฉื‘ื• ื ื‘ืฆืข ืฉื™ื ื•ื™ื™ื ื›: [ ca ].
  5. ื›ืขืช ืืชืŸ ื“ื•ื’ืžื” ืœื”ื’ื“ืจื” ืขื ื”ืชื™ืื•ืจ ืฉืœื”:
    [ 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 ..." ืœื ื™ืขื‘ื“ื•.

    ืืชื” ืฆืจื™ืš ื’ื ืงื•ื‘ืฅ ื˜ื•ืจื™, ืžืคืชื— ืคืจื˜ื™ ืฉื•ืจืฉ (ca.key), ืชืขื•ื“ืช ืฉื•ืจืฉ (ca.crt). ืชื”ืœื™ืš ื”ืฉื’ืช ื”ืงื‘ืฆื™ื ื”ืœืœื• ื™ืชื•ืืจ ืœื”ืœืŸ.

  6. ืื ื• ืžื—ื‘ืจื™ื ืืช ืืœื’ื•ืจื™ืชืžื™ ื”ื”ืฆืคื ื” ื”ืžืกื•ืคืงื™ื ืขืœ ื™ื“ื™ Rutoken.
    ื—ื™ื‘ื•ืจ ื–ื” ืžืชืจื—ืฉ ื‘ืงื•ื‘ืฅ openssl.cfg.

    • ืงื•ื“ื ื›ืœ, ืืชื” ืฆืจื™ืš ืœื”ื•ืจื™ื“ ืืช ื”ืืœื’ื•ืจื™ืชืžื™ื ื”ื“ืจื•ืฉื™ื ืฉืœ Rutoken. ืืœื• ื”ื ื”ืงื‘ืฆื™ื rtengine.dll, rtpkcs11ecp.dll.
      ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ื”ื•ืจื“ ืืช Rutoken SDK: www.rutoken.ru/developers/sdk.

      ื”-SDK ืฉืœ Rutoken ื”ื•ื ื›ืœ ืžื” ืฉื™ืฉ ืœืžืคืชื—ื™ื ืฉืจื•ืฆื™ื ืœื ืกื•ืช ืืช 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/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.

  7. ื”ื•ืกืคืช ืžืฉืชื ื™ ืกื‘ื™ื‘ื”.

    ื”ืงืคื“ ืœื”ื•ืกื™ืฃ ืžืฉืชื ื” ืกื‘ื™ื‘ื” ื”ืžืฆื™ื™ืŸ ืืช ื”ื ืชื™ื‘ ืœืงื•ื‘ืฅ ื”ืชืฆื•ืจื” openssl.cfg. ื‘ืžืงืจื” ืฉืœื™, ื”ืžืฉืชื ื” OPENSSL_CONF ื ื•ืฆืจ ืขื ื”ื ืชื™ื‘ C:Program FilesOpenSSL-Win64binopenssl.cfg.

    ื‘ืžืฉืชื ื” ื”ื ืชื™ื‘, ืขืœื™ืš ืœืฆื™ื™ืŸ ืืช ื”ื ืชื™ื‘ ืœืชื™ืงื™ื” ืฉื‘ื” ื ืžืฆื openssl.exe, ื‘ืžืงืจื” ืฉืœื™ ื”ื•ื: C: Program FilesOpenSSL-Win64bin.

  8. ื›ืขืช ืชื•ื›ืœ ืœื—ื–ื•ืจ ืœืฉืœื‘ 5 ื•ืœื™ืฆื•ืจ ืืช ื”ืงื‘ืฆื™ื ื”ื—ืกืจื™ื ืขื‘ื•ืจ ืกืคืจื™ื™ืช demoCA.
    1. ื”ืงื•ื‘ืฅ ื”ื—ืฉื•ื‘ ื”ืจืืฉื•ืŸ ืฉื‘ืœืขื“ื™ื• ืฉื•ื ื“ื‘ืจ ืœื ื™ืขื‘ื•ื“ ื”ื•ื ืกื“ืจืชื™. ื–ื”ื• ืงื•ื‘ืฅ ืœืœื ืกื™ื•ืžืช ืฉืขืจื›ื• ืฆืจื™ืš ืœื”ื™ื•ืช 01. ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืืช ื”ืงื•ื‘ืฅ ื”ื–ื” ื‘ืขืฆืžืš ื•ืœื›ืชื•ื‘ ื‘ืชื•ื›ื• 01. ืืชื” ื™ื›ื•ืœ ื’ื ืœื”ื•ืจื™ื“ ืื•ืชื• ืžื”-SDK ืฉืœ Rutoken ืœืื•ืจืš ื”ื ืชื™ื‘ sdk/openssl/rtengine/samples/tool/demoCA /.
      ืกืคืจื™ื™ืช demoCA ืžื›ื™ืœื” ืืช ื”ืงื•ื‘ืฅ ื”ืกื“ืจืชื™, ื•ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื.
    2. ืฆื•ืจ ืžืคืชื— ืคืจื˜ื™ ืฉื•ืจืฉ.
      ืœืฉื ื›ืš, ื ืฉืชืžืฉ ื‘ืคืงื•ื“ื” openSSL library, ืื•ืชื” ื™ืฉ ืœื”ืคืขื™ืœ ื™ืฉื™ืจื•ืช ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”:

      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. ืื ื• ื™ื•ืฆืจื™ื ืชืขื•ื“ืช ืฉื•ืจืฉ.
      ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” ื”ื‘ืื” ืฉืœ ืกืคืจื™ื™ืช openSSL:

      openssl req -utf8 -x509 -key ca.key -out ca.crt

      ืฉื™ื ืœื‘ ืฉื”ืžืคืชื— ื”ืคืจื˜ื™ ืฉืœ ื”ืฉื•ืจืฉ, ืฉื ื•ืฆืจ ื‘ืฉืœื‘ ื”ืงื•ื“ื, ื ื“ืจืฉ ืœื™ืฆื™ืจืช ืื™ืฉื•ืจ ื”ืฉื•ืจืฉ. ืœื›ืŸ, ืฉื•ืจืช ื”ืคืงื•ื“ื” ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžื•ืคืขืœืช ื‘ืื•ืชื” ืกืคืจื™ื™ื”.

    ื”ื›ืœ ืžื›ื™ืœ ื›ืขืช ืืช ื›ืœ ื”ืงื‘ืฆื™ื ื”ื—ืกืจื™ื ืขื‘ื•ืจ ื”ืชืฆื•ืจื” ื”ืžืœืื” ืฉืœ ืกืคืจื™ื™ืช demoCA. ืžืงื ืืช ื”ืงื‘ืฆื™ื ืฉื ื•ืฆืจื• ื‘ืกืคืจื™ื•ืช ื”ืžืฆื•ื™ื ื•ืช ื‘ืกืขื™ืฃ 5.

ืื ื• ื ื ื™ื— ืฉืœืื—ืจ ื”ืฉืœืžืช ื›ืœ 8 ื”ื ืงื•ื“ื•ืช, ืžืจื›ื– ื”ื”ืกืžื›ื” ืฉืœื ื• ืžื•ื’ื“ืจ ื‘ืžืœื•ืื•.

ื‘ื—ืœืง ื”ื‘ื, ืืชืืจ ื›ื™ืฆื“ ื ืขื‘ื•ื“ ืขื ืจืฉื•ืช ื”ืื™ืฉื•ืจื™ื ืขืœ ืžื ืช ืœื‘ืฆืข ืืช ืžื” ืฉืชื•ืืจ ื‘ ื”ื—ืœืง ื”ืงื•ื“ื ืฉืœ ื”ืžืืžืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”