ΠžΠΏΡ‹Ρ‚ примСнСния Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ для рСгистрации ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² систСмС (Ρ‡Π°ΡΡ‚ΡŒ 2)

Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь! ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ (с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ссылкС).

БСгодня ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ практичСской части. НачнСм с настройки своСго ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅Π³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° Π½Π° основС ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ криптографичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ openSSL. Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ с использованиСм windows 7.

Установив openSSL, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ криптографичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, созданиС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ сСртификатов) Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку.

Алгоритм дСйствий ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

  1. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ установочный дистрибутив openssl-1.1.1g.
    Π£ openSSL ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ Π ΡƒΡ‚ΠΎΠΊΠ΅Π½Ρƒ Π±Ρ‹Π»ΠΎ сказано, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° вСрсия 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 FilesOpenSSL-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 …Β» Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

    Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» serial, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (ca.key), ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ сСртификат (ca.crt). ΠŸΡ€ΠΎΡ†Π΅ΡΡ получСния этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ описан Π΄Π°Π»Π΅Π΅.

  6. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ прСдоставляСмыС Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ.
    Π­Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ происходит Π² Ρ„Π°ΠΉΠ»Π΅ openssl.cfg.

    • ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго трСбуСтся ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π ΡƒΡ‚ΠΎΠΊΠ΅Π½Π°. Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ rtengine.dll, rtpkcs11ecp.dll.
      Для этого скачиваСм Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ SDK: www.rutoken.ru/developers/sdk.

      Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ SDK – это всС, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π ΡƒΡ‚ΠΎΠΊΠ΅Π½. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования, Ρ‚Π°ΠΊ ΠΈ прСдставлСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Наши Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ rtengine.dll ΠΈ rtpkcs11ecp.dll находятся Π² Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ sdk соотвСтствСнно ΠΏΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ:

      sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll

      ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ rtengine.dll, rtpkcs11ecp.dll Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±Π΅Π· установлСнного Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° для Π ΡƒΡ‚ΠΎΠΊΠ΅Π½Π°. Π’Π°ΠΊΠΆΠ΅ Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. (ΠΏΡ€ΠΎ установку всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ смотри Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΡΡ‚Π°Ρ‚ΡŒΠΈ 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.

  7. ДобавляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды.

    ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды, которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ openssl.cfg. Π’ ΠΌΠΎΠ΅ΠΌ случаС Π±Ρ‹Π»Π° создана пСрСмСнная OPENSSL_CONF с ΠΏΡƒΡ‚Π΅ΠΌ C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ path Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится openssl.exe, Π² ΠΌΠΎΠ΅ΠΌ случаС это: C:Program FilesOpenSSL-Win64bin.

  8. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 5 ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° demoCA.
    1. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ β€” serial. Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ 01. МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ 01. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ SDK ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ sdk/openssl/rtengine/samples/tool/demoCA/.
      Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ demoCA Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» serial, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π½ΡƒΠΆΠ΅Π½.
    2. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.
      Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ 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 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² наш ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π½Ρ‚Ρ€ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ настроСн.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части я расскаТу, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΌ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ описано Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ