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

Π”ΠΎΠ±ΡŠΡ€ Π΄Π΅Π½!

Π’ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° част УспСшно ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ собствСн сСртификационСн Ρ†Π΅Π½Ρ‚ΡŠΡ€. Π‘ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ?

Използвайки мСстСн сСртифициращ ΠΎΡ€Π³Π°Π½, Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π΄Π°Π²Π°ΠΌΠ΅ сСртификати ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° провСрявамС подписитС Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Π΅Π·ΠΈ сСртификати.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π΄Π°Π²Π° сСртификат Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», сСртифициращият ΠΎΡ€Π³Π°Π½ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° спСциална заявка Π·Π° сСртификат Pkcs#10, която ΠΈΠΌΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€ž.csrβ€œ. Π’Π°Π·ΠΈ заявка ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π° послСдоватСлност, която сСртифициращият ΠΎΡ€Π³Π°Π½ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ. Заявката ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΊΠ°ΠΊΡ‚ΠΎ публичния ΠΊΠ»ΡŽΡ‡ Π½Π° потрСбитСля, Ρ‚Π°ΠΊΠ° ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° създаванС Π½Π° сСртификат (асоциативСн масив с Π΄Π°Π½Π½ΠΈ Π·Π° потрСбитСля).

Π©Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ заявка Π·Π° сСртификат Π² слСдващата статия, Π° Π² Ρ‚Π°Π·ΠΈ статия искам Π΄Π° Π΄Π°ΠΌ основнитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° сСртифициращия ΠΎΡ€Π³Π°Π½, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° изпълним Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΠΎΡ‚ страна Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°.

Π’Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° създадСм сСртификат. Π—Π° Ρ†Π΅Π»Ρ‚Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

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

ca Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° openSSL, която сС отнася Π΄ΠΎ сСртифициращия ΠΎΡ€Π³Π°Π½,
-batch - отмСня заявкитС Π·Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° сСртификат.
user.csr β€” исканС Π·Π° създаванС Π½Π° сСртификат (Ρ„Π°ΠΉΠ» във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ .csr).
user.crt - сСртификат (Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°).

Π—Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°, сСртифициращият ΠΎΡ€Π³Π°Π½ трябва Π΄Π° бъдС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ описано Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° част Π½Π° статията. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ‰Π΅ трябва Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° посочитС мСстополоТСниСто Π½Π° основния сСртификат Π½Π° сСртифициращия ΠΎΡ€Π³Π°Π½.

Команда Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° сСртификата:

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

cms Π΅ openSSL ΠΊΠΎΠΌΠ°Π½Π΄Π°, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° подписванС, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ криптографски ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° openSSL.

-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

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