JAN's History

HTTP์™€ HTTPS์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? + OpenSSL ๋ณธ๋ฌธ

๊ฐœ๋ฐœ์šฉ์–ด

HTTP์™€ HTTPS์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? + OpenSSL

JANNNNNN 2025. 4. 2. 23:01

๐ŸŒ 1. HTTP๋ž€?

HTTP๋Š” ์ธํ„ฐ๋„ท์—์„œ ์›นํŽ˜์ด์ง€๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์•ฝ์†(ํ”„๋กœํ† ์ฝœ)์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด:

  • ๋„ˆ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ http://naver.com ์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•˜๋ฉด
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— “ํŽ˜์ด์ง€ ์ค˜~” ๋ผ๊ณ  ์š”์ฒญ
  • ์„œ๋ฒ„๊ฐ€ “์ž, ์—ฌ๊ธฐ ์žˆ์–ด” ํ•˜๋ฉด์„œ HTML ๋ฌธ์„œ๋ฅผ ๋ณด๋ƒ„

๊ทธ๋ƒฅ ๊ทธ๋ ‡๊ฒŒ "์š”์ฒญํ•˜๊ณ  ์‘๋‹ตํ•˜๋Š” ๊ตฌ์กฐ"๋ฅผ HTTP ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ๋ถˆ๋Ÿฌ์š”.

2. HTTP์˜ ๋ฌธ์ œ์ 

HTTP๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ ํ‰๋ฌธ์œผ๋กœ ์˜ค๊ณ  ๊ฐ€์š”
๋ˆ„๊ฐ€ ์ค‘๊ฐ„์—์„œ ์—ฟ๋ณด๋ฉด:

  • ๋กœ๊ทธ์ธ ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ
  • ์นด๋“œ ์ •๋ณด
  • ๊ฐœ์ธ์ •๋ณด

๋‹ค ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค… ๐Ÿ˜จ

3. HTTP์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•œ ๊ฒƒ์ด HTTPS

HTTPS = HTTP + S(Secure) ์ฆ‰, HTTP์— ๋ณด์•ˆ(์•”ํ˜ธํ™”)์„ ์ถ”๊ฐ€ํ•œ ๊ฒŒ HTTPS ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด HTTPS์˜ S๋ž€ Secure์ด๋ผ๋Š” ๋ณด์•ˆ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™” ๊ฐ™์€ ๋ณด์•ˆ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์นœ ํ›„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ค‘๊ฐ„์—์„œ ๋ˆ„๊ตฐ๊ฐ€ ํ›”์ณ๋‚ธ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์–ด์„œ ํ•ด๋…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

  • ๋ˆ„๊ตฐ๊ฐ€ ์—ฟ๋ณด๋”๋ผ๋„ ์ •๋ณด๋ฅผ ํ•ด๋…ํ•  ์ˆ˜ ์—†๋„๋ก ์•”ํ˜ธํ™”
  • ์ •๋ณด๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฑธ ๋ณด์žฅํ•˜๋Š” ์‹ ๋ขฐ์„ฑ
  • ๋ธŒ๋ผ์šฐ์ €์— ๐Ÿ”’ ์ž๋ฌผ์‡  ์•„์ด์ฝ˜๋„ ๋œจ๋Š” ์ด์œ !

๊ทธ๋Ÿผ HTTPS๋Š” ์–ด๋–ป๊ฒŒ ์•”ํ˜ธํ™”ํ• ๊นŒ?

์—ฌ๊ธฐ์„œ ๋ฐ”๋กœ ๋“ฑ์žฅํ•˜๋Š” ๊ฒŒ ๐Ÿ‘‰ OpenSSL!

4. OpenSSL์˜ ์—ญํ• 

OpenSSL์€ HTTPS ์•”ํ˜ธํ™”์— ํ•„์š”ํ•œ ์—ด์‡ (์ธ์ฆ์„œ)๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
์ฆ‰, HTTPS๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด์„  ์ธ์ฆ์„œ(.crt) + ๋น„๋ฐ€ํ‚ค(.key)๊ฐ€ ํ•„์š”ํ•œ๋ฐ์š”.

openssl req -x509 ...

 

์ด๋Ÿฐ ๋ช…๋ น์–ด๋กœ ๋กœ์ปฌ ๊ฐœ๋ฐœ์šฉ HTTPS ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

5. ์•„ํ‚คํ…์ฒ˜์—์„œ HTTP์™€ HTTPS์˜ ํ†ต์‹  ๋ฐฉ๋ฒ•

๋ธŒ๋ผ์šฐ์ € → ์›น์„œ๋ฒ„ → WAS → DB ํ˜•ํƒœ๋กœ ์›น ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ตฌ์„ฑ์ด ๋˜๋Š”๋ฐ์š”

์ด ๊ณผ์ •์„ ์ž์„ธํžˆ ๋“ค์—ฌ๋‹ค๋ณด๋ฉด,

 

[ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)]
       โ‡… HTTPS
[Nginx (์›น ์„œ๋ฒ„)]
       โ‡… HTTP
[WAS (Web Application Server)]
       โ‡…
[DB ์„œ๋ฒ„]

 

๋ž๋‹ˆ๋‹ค

+ ๐Ÿ” ์ถ”๊ฐ€ ์ดํ•ด ํฌ์ธํŠธ

1. ํด๋ผ์ด์–ธํŠธ ↔ Nginx: HTTPS

  • Nginx๊ฐ€ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ HTTPS ํ†ต์‹  ๊ฐ€๋Šฅ
  • ๋ธŒ๋ผ์šฐ์ €๋ž‘ ์•ˆ์ „ํ•˜๊ฒŒ ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•จ

2. Nginx ↔ WAS: HTTP

  • ๋‘˜ ๋‹ค ๊ฐ™์€ ์„œ๋ฒ„์ด๊ฑฐ๋‚˜, ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์— ์žˆ์–ด์„œ ์•”ํ˜ธํ™” ํ•„์š” ์—†์Œ
  • ๋ณดํ†ต localhost:3000, http://backend:4000 ์ด๋Ÿฐ ์‹์œผ๋กœ ํ†ต์‹ 

3. WAS๋Š” ๋™์  ๋กœ์ง ๋‹ด๋‹น

  • ๋กœ๊ทธ์ธ, ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ, DB ์ฒ˜๋ฆฌ ๋“ฑ์€ ์ „๋ถ€ ์—ฌ๊ธฐ์„œ ์‹คํ–‰
  • ๊ฒฐ๊ณผ(JSON, HTML ๋“ฑ)๋ฅผ Nginx๋กœ ๋„˜๊ฒจ์คŒ

4. Nginx๋Š” ์ •์  ํŒŒ์ผ + HTTPS ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• 

  • ์ด๋ฏธ์ง€, CSS, JS๋Š” ์ž์ฒด ์ฒ˜๋ฆฌ
  • ๋‚˜๋จธ์ง€ API๋‚˜ HTML ์‘๋‹ต์€ WAS์— ์š”์ฒญ → ๋ฐ›์•„์„œ ์ „๋‹ฌ