рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреА рдиреЛрдВрджрдгреА рдЖрдгрд┐ рдЕрдзрд┐рдХреГрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░реБрдЯреЛрдХреЗрди рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ (рднрд╛рдЧ 3)

рдЪрд╛рдВрдЧрд▓реЗ рджрд┐рд╡рд╕!

рдорд╛рдЧреАрд▓ рднрд╛рдЧрд╛рдд рдЖрдореНрд╣реА рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдЖрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдкреНрд░рдорд╛рдгрди рдХреЗрдВрджреНрд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛ рд╣реЗрддреВрдВрд╕рд╛рдареА рддреЗ рдХрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддреЗ?

рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдЖрдореНрд╣реА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЬрд╛рд░реА рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдВрд╡рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рджреЗрдЦреАрд▓ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддреЛ.

рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рддрд╛рдирд╛, рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд┐рдирдВрддреА Pkcs#10 рд╡рд╛рдкрд░рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ '.csr' рдлрд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдЕрд╕рддреЗ. рдпрд╛ рд╡рд┐рдирдВрддреАрдордзреНрдпреЗ рдПрдХ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓рд╛ рдХреНрд░рдо рдЖрд╣реЗ рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рд▓рд╛ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдкрд╛рд░реНрд╕ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ. рд╡рд┐рдирдВрддреАрдордзреНрдпреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА рдЖрдгрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛ рджреЛрдиреНрд╣реА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд (рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдмрджреНрджрд▓ рдбреЗрдЯрд╛рд╕рд╣ рд╕рд╣рдпреЛрдЧреА рдЕреЕрд░реЗ).

рдЖрдореНрд╣реА рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╕рд╛рдареА рд╡рд┐рдирдВрддреА рдХрд╢реА рдорд┐рд│рд╡рд╛рдпрдЪреА рддреЗ рдкрд╛рд╣реВ рдЖрдгрд┐ рдпрд╛ рд▓реЗрдЦрд╛рдд рдорд▓рд╛ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рдЪреНрдпрд╛ рдореБрдЦреНрдп рдЖрдЬреНрдЮрд╛ рджреНрдпрд╛рдпрдЪреА рдЖрд╣реЗрдд рдЬреА рдЖрдореНрд╣рд╛рд▓рд╛ рдмреЕрдХрдПрдВрдб рдмрд╛рдЬреВрд▓рд╛ рдЖрдордЪреЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддреАрд▓.

рдореНрд╣рдгреВрди рдкреНрд░рдердо рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рддреЛ:

openssl ca -batch -in user.csr -out user.crt

ca рд╣реА рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХрдорд╛рдВрдб рдЖрд╣реЗ рдЬреА рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ,
-рдмреЕрдЪ - рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддрд╛рдирд╛ рдкреБрд╖реНрдЯреАрдХрд░рдг рд╡рд┐рдирдВрддреНрдпрд╛ рд░рджреНрдж рдХрд░рддреЗ.
user.csr тАФ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА (.csr рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдлрд╛рдЗрд▓).
user.crt - рдкреНрд░рдорд╛рдгрдкрддреНрд░ (рдЖрджреЗрд╢рд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо).

рд╣рд╛ рдЖрджреЗрд╢ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рдиреЗ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рдорд╛рдЧреАрд▓ рднрд╛рдЧрд╛рдд. рдЕрдиреНрдпрдерд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рдЪреНрдпрд╛ рдореВрд│ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдЪреЗ рд╕реНрдерд╛рди рдЕрддрд┐рд░рд┐рдХреНрддрдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.

рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрдбрддрд╛рд│рдгреА рдЖрджреЗрд╢:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/тАжтАж/demoCA/ca.crt -out data.file

cms рд╣реА рдПрдХ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХрдорд╛рдВрдб рдЖрд╣реЗ рдЬреА рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рд╡рд╛рдкрд░реВрди рд╕рд╛рдЗрдирд┐рдВрдЧ, рдкрдбрддрд╛рд│рдгреА, рдбреЗрдЯрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЗрддрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.

-verify - рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдореНрд╣реА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЛ.

authenticate.cms - рдорд╛рдЧреАрд▓ рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ рдЬрд╛рд░реА рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╕рд╣ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓реА рдбреЗрдЯрд╛ рдЕрд╕рд▓реЗрд▓реА рдлрд╛рдЗрд▓.

-inform PEM - PEM рд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

-CAfile /Users/тАжтАж/demoCA/ca.crt - рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдЪрд╛ рдорд╛рд░реНрдЧ. (рдпрд╛рд╢рд┐рд╡рд╛рдп рдХрдорд╛рдВрдб рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА, рдЬрд░реА ca.crt рдЪреЗ рдорд╛рд░реНрдЧ openssl.cfg рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рд╣реЛрддреЗ)

-out data.file тАФ рдореА рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ data.file рдлрд╛рдЗрд▓рд╡рд░ рдкрд╛рдард╡рддреЛ.

рдмреЕрдХрдПрдВрдб рдмрд╛рдЬреВрд▓рд╛ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ:

  • рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдиреЛрдВрджрдгреА:
    1. рдЖрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ user.csr рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ.
    2. рдЖрдореНрд╣реА рдпрд╛ рд▓реЗрдЦрд╛рдЪреА рдкрд╣рд┐рд▓реА рдЖрдЬреНрдЮрд╛ .bat рдХрд┐рдВрд╡рд╛ .cmd рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╣ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдЬрддрди рдХрд░рддреЛ. user.csr рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдпрд╛рдкреВрд░реНрд╡реА рд╕реЗрд╡реНрд╣ рдХрд░реВрди рдЖрдореНрд╣реА рд╣реА рдлрд╛рдЗрд▓ рдХреЛрдбрд╡рд░реВрди рдЪрд╛рд▓рд╡рддреЛ. рдЖрдореНрд╣рд╛рд▓рд╛ user.crt рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╕рд╣ рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ.
    3. рдЖрдореНрд╣реА user.crt рдлрд╛рдИрд▓ рд╡рд╛рдЪрддреЛ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдкрд╛рдард╡рддреЛ.

  • рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдзрд┐рдХреГрддрддрд╛:
    1. рдЖрдореНрд╣реА рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ рдЖрдгрд┐ рддреЛ authenticate.cms рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░рддреЛ.
    2. рдпрд╛ рд▓реЗрдЦрд╛рдЪрд╛ рджреБрд╕рд░рд╛ рдЖрджреЗрд╢ .bat рдХрд┐рдВрд╡рд╛ .cmd рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╣ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдЬрддрди рдХрд░рд╛. рдЖрдореНрд╣реА рд╣реА рдлрд╛рдИрд▓ рдХреЛрдбрд╡рд░реВрди рдЪрд╛рд▓рд╡рддреЛ, рдЖрдзреА рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди authenticate.cms рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХреЗрд▓рд╛ рд╣реЛрддрд╛. рдЖрдореНрд╣рд╛рд▓рд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ data.file рдЕрд╕рд▓реЗрд▓реА рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ.
    3. рдЖрдореНрд╣реА data.file рд╡рд╛рдЪрддреЛ рдЖрдгрд┐ рд╣рд╛ рдбреЗрдЯрд╛ рд╡реИрдзрддреЗрд╕рд╛рдареА рддрдкрд╛рд╕рддреЛ. рдиреЗрдордХреЗ рдХрд╛рдп рддрдкрд╛рд╕рд╛рдпрдЪреЗ рдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ рдкрд╣рд┐рд▓реНрдпрд╛ рд▓реЗрдЦрд╛рдд. рдбреЗрдЯрд╛ рд╡реИрдз рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдзрд┐рдХреГрддрддрд╛ рдпрд╢рд╕реНрд╡реА рдорд╛рдирд▓реА рдЬрд╛рддреЗ.

рд╣реЗ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдмреЕрдХрдПрдВрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдгрд╛рд░реА рдХреЛрдгрддреАрд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд рдЖрдкрдг Retoken рдкреНрд▓рдЧрдЗрдирд╕рд╣ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реЗ рддреЗ рдкрд╛рд╣реВ.

рдЖрдкрдг рд▓рдХреНрд╖ рджрд┐рд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж!

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛