๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ณด์•ˆ,์ธ์ฆ,๋„คํŠธ์›Œํฌ ๊ด€๋ จ

[SPRING BOOT] SSL ์ธ์ฆ์„œ ์‹ ๋ขฐ์„ฑ ํ™•์ธ ์ ˆ์ฐจ

by beeman 2023. 4. 4.

Spring Boot์—์„œ SSL ์ธ์ฆ์„œ์˜ ์‹ ๋ขฐ์„ฑ์„ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ

  1. SSL ์ธ์ฆ์„œ ํŒŒ์ผ ํ™•์ธ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” SSL ์ธ์ฆ์„œ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์ฆ์„œ ํŒŒ์ผ์€ PEM ํ˜•์‹์ด๋ฉฐ, .pem, .crt, .cer, .pfx ๋“ฑ์˜ ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  2. SSL ์ธ์ฆ์„œ ์ •๋ณด ํ™•์ธ ์ธ์ฆ์„œ ํŒŒ์ผ์„ ์—ด์–ด ๋ฐœ๊ธ‰ ๊ธฐ๊ด€, ์œ ํšจ ๊ธฐ๊ฐ„, ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” SSL ์ธ์ฆ์„œ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” OpenSSL๊ณผ ๊ฐ™์€ ํˆด์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜, ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด OpenSSL์„ ์‚ฌ์šฉํ•ด SSL ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

openssl x509 -in ์ธ์ฆ์„œํŒŒ์ผ๋ช….pem -noout -text

 

  1. CA ์ธ์ฆ์„œ ํ™•์ธ SSL ์ธ์ฆ์„œ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” CA (Certificate Authority)๋กœ๋ถ€ํ„ฐ ๋ฐœ๊ธ‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์—๋Š” ๋ฐœ๊ธ‰ ๊ธฐ๊ด€์˜ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. CA ์ธ์ฆ์„œ๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ธ์ฆ์„œ์˜ ์‹ ๋ขฐ์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ๋„๋ฉ”์ธ ์ด๋ฆ„ ํ™•์ธ SSL ์ธ์ฆ์„œ์— ๋“ฑ๋ก๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ธ์ฆ์„œ์— ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  3. ์ธ์ฆ์„œ ์ฒด์ธ ํ™•์ธ ์ธ์ฆ์„œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์ธ์ฆ ์ฒด์ธ์— ์†ํ•ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์ฒด์ธ์—๋Š” ๋ฃจํŠธ ์ธ์ฆ์„œ, ์ค‘๊ฐ„ ์ธ์ฆ์„œ, ์„œ๋ฒ„ ์ธ์ฆ์„œ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์ฒด์ธ์— ์†ํ•ด์žˆ์ง€ ์•Š์€ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. OCSP ํ™•์ธ ์ธ์ฆ์„œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด OCSP (Online Certificate Status Protocol)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OCSP๋Š” ์ธ์ฆ์„œ์˜ ์ƒํƒœ๋ฅผ ์˜จ๋ผ์ธ์œผ๋กœ ํ™•์ธํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๊ฐ€ OCSP๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ, OCSP ์„œ๋ฒ„์— ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด ์ธ์ฆ์„œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” SSL ์ธ์ฆ์„œ์˜ ์‹ ๋ขฐ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.