рд╕рдВрджреЗрд╢реЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реБрддреЛрдХреЗрди, рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдФрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕реАрдП

рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдХреНрд╖реЗрддреНрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рднреАрддрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреА рдПрдХ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ USB рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд╕реНрд╡рдпрдВ рдЖрдпрд╛ред рд░реБрддреЛрдХреЗрди рдИрдбреАрдПрд╕ рдкрд░ рдЖрд░рд╛рдо рдХрд╛ рд╡рд┐рдХрд▓реНрдк: рдпрд╣ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд▓рдЧ-рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЯреЛрдХрди рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рдкрд╛рд░рджрд░реНрд╢реА" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рд╢реНрди рдкреВрдЫреЗ рдмрд┐рдирд╛ рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп, рд░реВрдЯ рдХреНрд░реЗрдбреЗрдВрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реБрддреЛрдХреЗрди рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рдПрдХ рдЕрдпреЛрдЧреНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ, рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдлрд▓ рд▓реЙрдЧрд┐рди рдХреЗ рдмрд╛рдж, рдЙрд╕реА рдЯреЛрдХрди рдХреА рднреМрддрд┐рдХ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░реЗрдВред рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред

рдХрд┐рд╕реА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг (CA) рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ USB рдЯреЛрдХрди рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ OpenSSL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рддреНрдпрд╛рдкрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рддреЛ, рдХрд╛рд░реНрдп: рд╕реНрдерд╛рдкрдирд╛ рдФрд░ CA рдХреЗ рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред USB рдЯреЛрдХрди рдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ ред

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


  1. рд╣рдо рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ CA рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ OpenSSL рдХреЙрдиреНрдлрд┐рдЧреНрд░реЗрд╢рди рдХреЛ рдХреЙрдкреА рдХрд░реЗрдЧрд╛ (рдЙрдмрдВрдЯреВ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ /etc/ssl/openssl.cnf рд╣реИ )
  2. рд╣рдо "рд╣рдорд╛рд░реЗ" рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред

    рдХ) рдЯреЛрдХрди рдЗрдВрдЬрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

    openssl_conf = openssl_def [ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /path/to/rutoken/openssl/connector/librtengine.so MODULE_PATH = /path/to/rutoken/pkcs11/librtpkcs11ecp.so RAND_TOKEN = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP default_algorithms = CIPHERS, DIGEST, PKEY, RAND 

    b) рд▓рд╛рдЗрди рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

     # req_extensions = v3_req # The extensions to add to a certificate request 

    c) [v3_req] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

     subjectSignTool = ASN1:FORMAT:UTF8,UTF8String:   extendedKeyUsage=emailProtection keyUsage=digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment 

    [v3_ca] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ d), рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╣рдЯрд╛ рджреЗрдВ:

     basicConstraints = CA:true 

    рдХрд┐рд╕ рд▓рд┐рдП? рдИрдорд╛рдирджрд╛рд░ рдЙрддреНрддрд░: рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░реВрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдореИрдВрдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдереЗ, рд╡рд┐рд╖рдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП, рдмрд┐рдирд╛ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рд╕рдВрдХреЗрдд рдХреЗред рдореИрдВ рд╕рд╡рд╛рд▓ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдБ "рдХрд┐рд╕ рд▓рд┐рдП?" рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВред


    рдИ) рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рддреЗ рд╕рдордп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ [req_distinguished_name] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣реИрдВ

    _Default рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:

     countryName = Country Name (2 letter code) countryName_default = AU countryName_min = 2 countryName_max = 2 

    рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЛ рджреЗрд╢рдирд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдХреНрд╡рд╛рдпрд░ рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдпреВ рдорд╛рди рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред


    рдпрд╣ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ OPENSSL_CONF рд╕реЗрдЯ рдХрд░реЗрдВ:

     export OPENSSL_CONF=/path/to/your/openssl.cnf 
  3. рд╣рдо рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рд╕реАрдП рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдЧреАред
    рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдмрдирд╛рдИ рдЧрдИ рд╕рд▓рд╛рдореА рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рдПрдВред CSF, рдФрд░ рдирд┐рдореНрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

    a) рдЗрд╕рдореЗрдВ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдПрдБ:

    demoCA
    рдбреЗрдореЛрдХрд╛ / рдирд┐рдЬреА
    рдбреЗрдореЛрдХрд╛ / рдирдП

    рдиреЛрдЯ: DemoCA рдирд╛рдо, Opensl.cnf рдлрд╝рд╛рдЗрд▓ рдХреЗ [CA_default] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ (рдЪрд░рдг 2 рдореЗрдВ) рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдбреЗрдореЛрдХрд╛ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

    b) рдбреЗрдореЛрдХрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдПрдХ рдЦрд╛рд▓реА index.txt рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдХреЗ рд╕рд╛рде рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рд▓рд╛рдЗрди 01 рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓реЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореВрд▓реНрдп рдПрдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
  4. рд╣рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ rtAdmin рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЯреЛрдХрди рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм CA рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред

    рдХрд╛рд░реНрд░рд╡рд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕рд░рд▓ рд╣реИ:

    a) рд╣рдо GOST рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгрди рдХреЗрдВрджреНрд░ рдХрд╛ рдореВрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ:

    • рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд CA рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
    • рдЙрддреНрдкрдиреНрди рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд X509 рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

    b) рдкреНрд░рддреНрдпреЗрдХ USB рдЯреЛрдХрди рдкрд░

    • рдПрдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА (рддрдерд╛рдХрдерд┐рдд рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрдВрдЯреЗрдирд░) рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
    • рдЬрдирд░реЗрдЯ рдЯреЛрдХрди рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
    • рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ
    • рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЯреЛрдХрди рдкрд░ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕рд╣реЗрдЬреЗрдВ

    рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХрд▓ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:

    CA рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рдореБрдЦреНрдп рдкреАрдврд╝реА (рд╣рдо GOST рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ):

     openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -outform PEM -out demoCA/private/cakey.pem 

    рд╣рдо рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд CA рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ:

     <b>openssl req -new -x509 -key demoCA/private/cakey.pem -out demoCA/certs/cacert.pem -extensions v3_ca -days +3650 -outform PEM 

    рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рд╣рдордиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рд╣реИ рдХрд┐ v3_ca рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдУрдкрдирд╕реНрд╕реНрд▓реН_cnf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рд╡рд╣рд╛рдБ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд╕реАрдП рд╣реИред 10 рд╕рд╛рд▓ рдХреА рд╡реИрдзрддрд╛ред рд╕реАрдП рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рддред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕рдВрднрд╡ рд╣реИред

    рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЛ рд╣рдорд╛рд░реА рдорд╛рдирд╣рд╛рдирд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ [req_distinguished_name] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдореМрдЬреВрдж рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ред

    рдЕрдм рд╣рдо рдЯреЛрдХрди рд╕рдВрдЪрд╛рд▓рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЯреЛрдХрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдирдпрд╛ рдпрд╛ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реИ, рддреЛ рдЙрд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрд┐рди 12345678 рд╣реИред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рд╕рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд┐рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЯреЛрдХрди рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдиреАрдЪреЗ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рди рд╣реЛред

    рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝реА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ ред рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рд░реБрдЯреЛрдХрди рдкрд░ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдУрдкрдирдПрд╕рд╕реА рдкреИрдХреЗрдЬ рд╕реЗ pkcs11- рдЯреВрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

     pkcs11-tool --module /path/to/your/librtpkcs11ecp.so --login --pin 12345678 --keypairgen --key-type GOSTR3410:A --id 303030303031 --label 'client01' 

    рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ: рд╣рдордиреЗ рдЖрдИрдбреА 303030303031 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рдЖрдИрдбреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдЕрдВрдХ рдХреНрд░рдорд╢рдГ рдЕрдХреНрд╖рд░ "0" рдФрд░ "1" рдХреЗ рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдХреЛрдб рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдпрд╣ "рдЖрдИрдбреА = 000001" рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред

    рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдВ:

     openssl req -utf8 -new -keyform engine -key 'pkcs11:id=000001' -engine rtengine -out demoCA/newcerts/client01.csr 

    рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╕рд┐рд╕реНрдЯрдо

    • рдПрдХ рдкрд┐рди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ
    • рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╛рдо рдорд╛рдкрджрдВрдбреЛрдВ ( [req_distinguished_name] рдЕрдиреБрднрд╛рдЧ рд╕реЗ) рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ
    • рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрдиреБрд░реЛрдз рдлрд╝рд╛рдЗрд▓ рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛

    рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╣реИрдВ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдорд╛рдгрдкрддреНрд░ 1825 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрдз рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рдЕрд╡рдзрд┐ рдЖрдкрдХреЗ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рд╕реЗ рдЕрдзрд┐рдХ рди рд╣реЛ ):

     openssl ca -utf8 -days +1825 -keyfile demoCA/private/cakey.pem -cert demoCA/certs/cacert.pem -in demoCA/newcerts/client01.csr -outdir demoCA/newcerts -out demoCA/certs/client01.pem 

    рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рдЗрд╕ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫреЗрдЧрд╛ (рдЙрддреНрддрд░ "y"), рдФрд░ рдирдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдлрд┐рд░ рд╕реЗ рдЙрддреНрддрд░ "y")ред

    рд╣рдо рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ:

     pkcs11-tool --module /path/to/your/librtpkcs11ecp.so --login --pin 12345678 --id=303030303031 -w demoCA/certs/client01.pem -y cert 

    рд╡рд╣ рд╕рдм рд╣реИред

    рдмрдирд╛рдпрд╛ "рдЪрдорддреНрдХрд╛рд░" рдХрд╛ рдкрд░реАрдХреНрд╖рдгред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо "рд╣реИрд▓реЛ, рджреБрдирд┐рдпрд╛!" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

     echo Hello,world! | openssl cms -nodetach -sign -signer demoCA/certs/client01.pem -keyform engine -inkey "pkcs11:id=000001" -engine rtengine -binary -noattr -outform PEM | openssl cms -verify -CAfile demoCA/certs/cacert.pem -inform PEM 

    рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдкрд┐рди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛, рд╕рдВрджреЗрд╢ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдЧрд╛, рдлрд┐рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдпрджрд┐ рд╕рдлрд▓ рд╣реЛрдЧрд╛, рддреЛ рдореВрд▓ рд╕рдВрджреЗрд╢ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо ("рд╕рдлрд▓рддрд╛") рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред

    рд░рд┐рдорд╛рд░реНрдХ ред рд╢реАрд░реНрд╖рдХ рдХрд╛рд░реНрдп рдкрд░ рд▓реМрдЯрдирд╛ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд▓рдЧрдЗрди PEM рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ DER рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, base64 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдмреЗрд╕ 64 рд╕реЗ рдбреАрдХреЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЬрдм рдЪреЗрдХрд┐рдВрдЧ рдЗрдирдкреБрдЯ рдбреАрдИрдЖрд░ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

    рдЕ рдЫрд╛!

Source: https://habr.com/ru/post/hi444646/


All Articles