ΠΠΎΠ±ΡΡ Π΄Π΅Π½!
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅ΡΡΠ΅Π½ ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΎΡΠ³Π°Π½, Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ Π²ΡΡΡ
Ρ ΡΠ΅Π·ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π΄Π°Π²Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°ΡΠΈΡΡ ΠΎΡΠ³Π°Π½ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ 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.
ΠΠ»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΎΡΠ³Π°Π½ ΠΎΡ Π·Π°Π΄Π½Π°ΡΠ° ΡΠ°ΡΡ Π΅ ΠΊΠ°ΠΊΡΠΎ ΡΠ»Π΅Π΄Π²Π°:
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»:
- ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ ΠΌΡ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° user.csr.
- ΠΠ°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π²ΡΠ² ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ .bat ΠΈΠ»ΠΈ .cmd. ΠΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» ΠΎΡ ΠΊΠΎΠ΄, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠΌΠ΅ Π·Π°ΠΏΠ°Π·ΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° user.csr. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ°ΠΉΠ» ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° user.crt.
- ΠΠΈΠ΅ ΡΠ΅ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π° user.crt ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
- Π£ΠΏΡΠ»Π½ΠΎΠΌΠΎΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»:
- ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π³ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° authenticate.cms.
- ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ Π²ΡΠΎΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π²ΡΠ² ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ .bat ΠΈΠ»ΠΈ .cmd. ΠΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠΌΠ΅ Π·Π°ΠΏΠ°Π·ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΡΡΠ²ΡΡΠ° Π² authenticate.cms. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ°ΠΉΠ» Ρ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ data.file.
- ΠΠΈΠ΅ ΡΠ΅ΡΠ΅ΠΌ data.file ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ. ΠΠΏΠΈΡΠ°Π½ΠΎ Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ
Π² ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ°ΡΠΈΡ . ΠΠΊΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ° Π²Π°Π»ΠΈΠ΄Π½ΠΈ, ΡΠΎΠ³Π°Π²Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° ΡΡΠΏΠ΅ΡΠ½Π°.
ΠΠ° Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ΅Π·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°.
Π ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ ΠΏΠ»ΡΠ³ΠΈΠ½Π° Retoken.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com