์ข์ ํ๋ฃจ!
ํ์ง ์ธ์ฆ ๊ธฐ๊ด์ ์ด์ฉํ์ฌ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๊ณ ํด๋น ์ธ์ฆ์์ ์๋ช
์ ํ์ธํ ์๋ ์์ต๋๋ค.
์ฌ์ฉ์์๊ฒ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ ๋ ์ธ์ฆ ๊ธฐ๊ด์ '.csr' ํ์ผ ํ์์ ๊ฐ๋ ํน์ ์ธ์ฆ์ ์์ฒญ Pkcs#10์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์ฒญ์๋ ์ธ์ฆ ๊ธฐ๊ด์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ ์ธ์ฝ๋ฉ๋ ์ํ์ค๊ฐ โโํฌํจ๋์ด ์์ต๋๋ค. ์์ฒญ์๋ ์ฌ์ฉ์์ ๊ณต๊ฐ ํค์ ์ธ์ฆ์ ์์ฑ์ ์ํ ๋ฐ์ดํฐ(์ฌ์ฉ์์ ๋ํ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ฐ๊ด ๋ฐฐ์ด)๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์์ต๋๋ค.
๋ค์ ๊ธฐ์ฌ์์๋ ์ธ์ฆ์ ์์ฒญ์ ๋ฐ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ , ์ด ๊ธฐ์ฌ์์๋ ๋ฐฑ์๋ ์ธก์์ ์์ ์ ์๋ฃํ๋ ๋ฐ ๋์์ด ๋๋ ์ธ์ฆ ๊ธฐ๊ด์ ์ฃผ์ ๋ช ๋ น์ ์ ๊ณตํ๊ณ ์ถ์ต๋๋ค.
๊ทธ๋์ ๋จผ์ ์ธ์ฆ์๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค.
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 ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค!
์ถ์ฒ : habr.com