ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ!
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π½ΡΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΄Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΠΎ ΡΡΠΈΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌ.
ΠΡΠΈ Π²ΡΠ΄Π°ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ ΡΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΠ΄Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° 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 ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡ. Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ
Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ . ΠΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π²Π°Π»ΠΈΠ΄Π½Ρ, ΡΠΎ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ.
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π±Π΅ΠΊΠ΅Π½Π΄Π°.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π Π΅ΡΠΎΠΊΠ΅Π½ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com