ΠžΠΏΠΈΡ‚ Π² ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° тСхнологията Rutoken Π·Π° рСгистриранС ΠΈ ΠΎΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π² систСмата (част 2)

Π”ΠΎΠ±ΡŠΡ€ Π΄Π΅Π½ Π”Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ с Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ°ΠŸΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° част ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Π»ΠΈΠ½ΠΊΠ°).

ДнСс ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към практичСската част. НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ, ΠΊΠ°Ρ‚ΠΎ настроим нашия CA Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½Π°Ρ‚Π° криптографска Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ openSSL. Π’ΠΎΠ·ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π΅ тСстван с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Windows 7.

Π‘ инсталиран openSSL ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ криптографски ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΊΠ°Ρ‚ΠΎ създаванС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΈ сСртификати) Ρ‡Ρ€Π΅Π· командния Ρ€Π΅Π΄.

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π½Π° дСйствия Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:

  1. Π˜Π·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ инсталационната дистрибуция openssl-1.1.1g.
    openSSL ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии. Π’ докумСнтацията Π·Π° Rutoken сС ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ сС изисква openSSL вСрсия 1.1.0 ΠΈΠ»ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π°. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ… вСрсия openssl-1.1.1g. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ openSSL ΠΎΡ‚ официалния сайт, Π½ΠΎ Π·Π° ΠΏΠΎ-лСсна инсталация трябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ инсталационния Ρ„Π°ΠΉΠ» Π·Π° windows Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Направих Ρ‚ΠΎΠ²Π° Π·Π° Ρ‚Π΅Π±: 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.

      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/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. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° Π³ΠΎ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ ΠΎΡ‚ Rutoken SDK ΠΏΠΎ ΠΏΡŠΡ‚Ρ sdk/openssl/rtengine/samples/tool/demoCA /.
      ДирСкторията demoCA ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° сСрийния Ρ„Π°ΠΉΠ», ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ.
    2. Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ root частСн ΠΊΠ»ΡŽΡ‡.
      Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° openSSL Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която трябва Π΄Π° сС изпълни Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ командния Ρ€Π΅Π΄:

      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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€