TIL-055 | HTTP & HTTPS

Lee, Chankyuยท2022๋…„ 1์›” 4์ผ

Computer Science

๋ชฉ๋ก ๋ณด๊ธฐ
3/12
post-thumbnail

๐ŸŒˆ HTTP & HTTPS

HTTP(HyperText Transfer Protocol)

์ง€๋‚œ๋ฒˆ ์ž‘์„ฑํ•œ HTTP ๊ธ€์„ ํ†ตํ•ด HTTP์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•œ์ ์ด ์žˆ์—ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ๊ณต๋ถ€ํ•˜๊ณ , ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ HTTPS์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

HTTP ๋ž€?

  • ์ธํ„ฐ๋„ท ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ž์›์„ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์“ฐ๋Š” ํ†ต์‹  ๊ทœ์•ฝ(protocol)
    • ํ”„๋กœํ† ์ฝœ(protocol)์ด๋ž€, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€ ๋˜๋Š” ์ปดํ“จํ„ฐ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ์˜ ๊ตํ™˜ ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” ๊ทœ์น™ ์ฒด๊ณ„์ด๋‹ค. ๊ธฐ๊ธฐ ๊ฐ„ ํ†ต์‹ ์€ ๊ตํ™˜ ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์— ๋Œ€ํ•ด ์ƒํ˜ธ ํ•ฉ์˜๋ฅผ ์š”๊ตฌํ•œ๋‹ค. ์ด๋Ÿฐ ํ˜•์‹์„ ์ •์˜ํ•˜๋Š” ๊ทœ์น™์˜ ์ง‘ํ•ฉ
  • ๋‹ค์‹œ ๋งํ•ด, HTTP๋Š” ์ธํ„ฐ๋„ท์—์„œ ํ•˜์ดํผํ…์ŠคํŠธ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ, 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ HTTP ์„œ๋ฒ„๊ฐ€ 80๋ฒˆ ํฌํŠธ์—์„œ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” 80๋ฒˆ ํฌํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค.

HTTP์˜ ํŠน์ง•

1. Request / Response (์š”์ฒญ / ์‘๋‹ต)

  • HTTP ํ†ต์‹ ์˜ ํ•ต์‹ฌ์€ ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(response)์ด๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•˜๋ฉด HTTP ํ‘œ์ค€์— ๋”ฐ๋ผ URL์„ ์š”์ฒญ ๋ฉ”์‹œ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  TCP/IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์š”์ฒญ(request)์„ ๋ณด๋‚ธ๋‹ค. ์›น ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜(response)ํ•œ๋‹ค.

2. Stateless

  • ๊ฐ๊ฐ์˜ HTTP ํ†ต์‹ (์š”์ฒญ/์‘๋‹ต)์€ ๋…๋ฆฝ์  ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๊ฑฐ์˜ ํ†ต์‹ (์š”์ฒญ/์‘๋‹ต)์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•œ๋‹ค.

  • ๋”ฐ๋ผ์„œ ๋งค ํ†ต์‹ ๋งˆ๋‹ค ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค.

  • ๋งŒ์ผ ์—ฌ๋Ÿฌ๋ฒˆ์˜ ํ†ต์‹ (์š”์ฒญ/์‘๋‹ต)์˜ ์ง„ํ–‰๊ณผ์ •์—์„œ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ(ex. ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์—์„œ ๋กœ๊ทธ์ธ ํ›„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ)๋ฅผ ์œ„ํ•ด ๋กœ๊ทธ์ธ ํ† ํฐ ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค, ์„ธ์…˜, ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€ ๊ฐ™์€ ๊ธฐ์ˆ ์ด ํƒ„์ƒํ•˜์˜€๋‹ค.

HTTP Request ๊ตฌ์กฐ

1. Start line
: HTTP Method, ํƒ€๊ฒŸ url, HTTP version

2. Headers

Headers: {
	Host: ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ชฉํ‘œ(ํƒ€๊ฒŸ)์˜ ์ฃผ์†Œ. ์ฆ‰, ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์›น์‚ฌ์ดํŠธ์˜ ๊ธฐ๋ณธ ์ฃผ์†Œ๊ฐ€ ๋œ๋‹ค
	(ex. www.google.com)
    	User-Agent: ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋Œ€ํ•œ ์ •๋ณด (ex. chrome, firefox, safari, explorer)
	Content-Type: ํ•ด๋‹น ์š”์ฒญ์ด ๋ณด๋‚ด๋Š” ๋ฉ”์„ธ์ง€ body์˜ ํƒ€์ž… (ex. application/json)
	Content-Length: body ๋‚ด์šฉ์˜ ๊ธธ์ด
	Authorization: ํšŒ์›์˜ ์ธ์ฆ/์ธ๊ฐ€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ์ธ ํ† ํฐ์„ Authroization ์— ๋‹ด๋Š”๋‹ค
}

3. Body
: ํ•ด๋‹น ์š”์ฒญ์˜ ์‹ค์ œ ๋‚ด์šฉ์ด ๋‹ด๊ธด๋‹ค. ์ฃผ๋กœ POST ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ body์— ๋‚ด์šฉ์ด ๋‹ด๊ธด๋‹ค.

Body: {
	"name": "Chankyu"
	"email": "chankyu@gmail.com"
}

HTTP Response ๊ตฌ์กฐ

1. Status line
: ์‘๋‹ต์˜ ์ƒํƒœ ์ค„์ด๋‹ค. ์‘๋‹ต์€ ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์ƒํƒœ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ ค์ฃผ๋ฉด์„œ ๋‚ด์šฉ์„ ์‹œ์ž‘ํ•œ๋‹ค. ์‘๋‹ต์˜ Status Line ๋„ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  1. HTTP Version: ์š”์ฒญ์˜ HTTP๋ฒ„์ „๊ณผ ๋™์ผ
  2. Status Code: ์‘๋‹ต ๋ฉ”์„ธ์ง€์˜ ์ƒํƒœ ์ฝ”๋“œ
  3. Status Text: ์‘๋‹ต ๋ฉ”์„ธ์ง€์˜ ์ƒํƒœ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๋Š” ํ…์ŠคํŠธ

2. Headers
: ์š”์ฒญ์˜ ํ—ค๋”์™€ ๋™์ผํ•˜๋‹ค. ์‘๋‹ต์˜ ์ถ”๊ฐ€ ์ •๋ณด(๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ)๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค. ๋‹ค๋งŒ, ์‘๋‹ต์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋”์˜ ์ •๋ณด๋“ค์ด ์žˆ๋‹ค. (ex. ์š”์ฒญํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด User-Agent ๋Œ€์‹ , Server ํ—ค๋”๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.)

3. Body
: ์š”์ฒญ์˜ Body์™€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์ผํ•˜๋‹ค. ์š”์ฒญ์˜ ๋ฉ”์†Œ๋“œ์— ๋”ฐ๋ผ Body๊ฐ€ ํ•ญ์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋“ฏ์ด. ์‘๋‹ต๋„ ์‘๋‹ต์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—” Body๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” Body ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ JSON(JavaScript Object Notation) ์ด๋‹ค.

๐Ÿ‘‰ HTTP๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์˜ ํ”„๋กœํ† ์ฝœ๋กœ TCP/IP ์œ„์—์„œ ์ž‘๋™ํ•œ๋‹ค.
๐Ÿ‘‰ HTTP๋Š” ์•”ํ˜ธํ™”๊ฐ€ ๋˜์ง€ ์•Š์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด์˜€๊ธฐ ๋•Œ๋ฌธ์—, ๋ˆ„๊ตฐ๊ฐ€ ๋„คํŠธ์›Œํฌ์—์„œ ์‹ ํ˜ธ๋ฅผ ๊ฐ€๋กœ์ฑ„๋ฉด ๋‚ด์šฉ์ด ๋…ธ์ถœ๋˜๋Š” ๋ณด์•ˆ ์ด์Šˆ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
๐Ÿ‘‰ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HTTPS๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.


HTTPS(HyperText Transfer Protocol Secure)

HTTPS ๋ž€?

  • HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure ๋“ฑ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” HTTPS๋Š” HTTP์— ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์˜ ๋ชจ๋“  ํ†ต์‹  ๋‚ด์šฉ์ด ์•”ํ˜ธํ™”๋œ๋‹ค.

  • HTTPS ํ”„๋กœํ† ์ฝœ์€ SSL์ด๋‚˜ TLS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค. SSL์€ ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด์— ์•ˆ์ „ํ•˜๊ฒŒ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๊ณ  ์„œ๋ฒ„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์ด๊ฒƒ์ด ๋„๋‚œ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ค€๋‹ค.

  • HTTPS๋Š” 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ค‘๊ฐ„์— ์ œ3์ž๊ฐ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

๊ณต๊ฐœํ‚ค & ๊ฐœ์ธํ‚ค

  • HTTPS๋Š” ๊ณต๊ฐœํ‚ค/๊ฐœ์ธํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค.
    • ๊ณต๊ฐœํ‚ค: ๋ชจ๋‘์—๊ฒŒ ๊ณต๊ฐœ๊ฐ€๋Šฅํ•œ ํ‚ค
    • ๊ฐœ์ธํ‚ค: ๋‚˜๋งŒ ๊ฐ€์ง€๊ณ  ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ํ‚ค
  • ๊ณต๊ฐœํ‚ค/๊ฐœ์ธํ‚ค ์•”ํ˜ธํ™”์˜ ํšจ๊ณผ
    • ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”: ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋ฉด ๊ฐœ์ธํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
      -> ๊ฐœ์ธํ‚ค๋Š” ๋‚˜๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๋‚˜๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐœ์ธํ‚ค ์•”ํ˜ธํ™”: ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด ๊ณต๊ฐœํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
      -> ๊ณต๊ฐœํ‚ค๋Š” ๋ชจ๋‘์—๊ฒŒ ๊ณต๊ฐœ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ๋‚ด๊ฐ€ ์ธ์ฆํ•œ ์ •๋ณด์ž„์„ ์•Œ๋ ค ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

๋Œ€์นญํ‚ค ๋ฐฉ์‹

  • ์–‘์ชฝ ๋‹น์‚ฌ์ž๊ฐ€ ๊ณตํ†ต ๋น„๋ฐ€ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜์—ฌ ๋™์ผํ•œ ํ‚ค๋กœ ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

โœ” ์žฅ์ 

  • ๋Œ€์นญํ‚ค๋Š” ๋งค๋ฒˆ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ๋ˆ„์ถœ๋˜์–ด๋„ ๋‹ค์Œ์— ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋‹ค๋ฅธ ํ‚ค๊ฐ€ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๋‹ค.
  • ๊ณต๊ฐœํ‚ค๋ณด๋‹ค ํ†ต์‹  ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

โœ” ๋‹จ์ 

  • ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ผ๋ฆฌ ๊ฐ™์€ ๋Œ€์นญํ‚ค๋ฅผ ๊ณต์œ ํ•ด์•ผ๋งŒ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
    • ๋Œ€์นญํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํ•ดํ‚น์˜ ์œ„ํ—˜์— ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค.
    • ๋Œ€์นญํ‚ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์Œ๋งˆ๋‹ค ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ†ต์‹ ์„ ์ด n๋ช…์ด ํ•œ๋‹ค๋ฉด nC2=n(n-1)/2 ๋งŒํผ์˜ ๋Œ€์นญํ‚ค ์ƒ์„ฑ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.
  • ๊ฒฐ๋ก ์ ์œผ๋กœ, ํ‚ค ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค๋‹ค.

๋น„๋Œ€์นญํ‚ค ๋ฐฉ์‹

  • ๊ณต๊ฐœํ‚ค, ๊ฐœ์ธํ‚ค ๋‘๊ฐœ์˜ ํ‚ค๋ฅผ ํ•œ ์Œ์œผ๋กœ ๊ฐ๊ฐ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”์— ์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™” ํ•œ๊ฒƒ์€ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™” ํ•œ๊ฒƒ์€ ๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ณต๊ฐœํ‚ค๋Š” ๋Œ€์นญํ‚ค ๋ฐฉ์‹๋ณด๋‹ค ํ›จ์”ฌ ์•ˆ์ „ํ•˜์ง€๋งŒ, ๊ณ„์‚ฐ ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ  ์—ฐ์‚ฐ ๋„์ค‘ ์ปดํ“จํ„ฐ์˜ ์ž์›์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์—…์—์„œ๋Š” ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹๊ณผ ๋Œ€์นญํ‚ค ๋ฐฉ์‹์„ ์ ์ ˆํžˆ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ‘‰ ์ด๋Ÿฌํ•œ SSL ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋ ค๋ฉด ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์„œ๋ฒ„์— ์ ์šฉ์‹œ์ผœ์•ผ ํ•œ๋‹ค. ์ธ์ฆ์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•œ ์„œ๋ฒ„๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์˜๋„ํ•œ ์„œ๋ฒ„๊ฐ€ ๋งž๋Š”์ง€๋ฅผ ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” ๊ธฐ๊ด€์„ CA(Certificate Authority)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ณต์ธ์ธ์ฆ๊ธฐ๊ด€์˜ ๊ฒฝ์šฐ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฏธ๋ฆฌ CA ๋ฆฌ์ŠคํŠธ์™€ ํ•จ๊ป˜ ๊ฐ CA์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค.

โœ” ๋™์ž‘ ๋ฐฉ์‹

1. ์„œ๋ฒ„ - ์ธ์ฆ ์„œ๋ช… ์š”์ฒญ์„œ(CSR) ์ƒ์„ฑ

  • ์„œ๋ฒ„์—์„œ ๊ฐœ์ธํ‚ค์™€ ๊ณต๊ฐœํ‚ค๋ฅผ ์Œ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
  • ์„œ๋ฒ„์—์„œ ์ธ์ฆ ์„œ๋ช… ์š”์ฒญ์„œ(CSR)์„ ๋งŒ๋“ ๋‹ค.
    • SHA256๊ณผ ๊ฐ™์€ ํ•ด์‰ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด์‹ฑ
    • ๊ตญ๊ฐ€์ฝ”๋“œ, ๋„์‹œ, ํšŒ์‚ฌ๋ช…, ์ด๋ฉ”์ผ, ๋„๋ฉ”์ธ ์ฃผ์†Œ ๋“ฑ์ด ๋“ค์–ด๊ฐ€๋ฉฐ ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋„ ๋„ฃ๋Š”๋‹ค.
    • CA์— ์ „๋‹ฌํ•œ๋‹ค.

2. CA - SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰

  • CA๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ธ์ฆ ์„œ๋ช… ์š”์ฒญ์„œ(CSR)์— CA์˜ ๊ฐœ์ธํ‚ค๋ฅผ ํ†ตํ•ด ์ „์ž์„œ๋ช…('์•”ํ˜ธํ™”'๋ผ ํ‘œํ˜„ํ•˜์ง€ ์•Š๊ณ  '์ „์ž์„œ๋ช…'์ด๋ผ๊ณ  ํ‘œํ˜„)์„ ํ•œ ํ˜•ํƒœ์ธ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค.

3. ์„œ๋ฒ„ - SSL ์ธ์ฆ์„œ ์ˆ˜๋ น

  • ์„œ๋ฒ„๊ฐ€ ์•”ํ˜ธํ™”๋œ SSL ์ธ์ฆ์„œ๋ฅผ CA๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š”๋‹ค.

4. ํด๋ผ์ด์–ธํŠธ - SSL Handshake์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ : Client Hello

  • Client๊ฐ€ ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ๊ฐ€์žฅ ๋จผ์ € Server์— 3-Way Handshake๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ๋‹ค.(TCP ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์‹œ๋„)

  • 3-Way Handshake๋ฅผ ์—ฐ๊ฒฐ์ด ์™„๋ฃŒ๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๊ฐ€ Client Hello ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰

  • HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋œ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๋Š” Client Hello ๋‹จ๊ณ„์—์„œ ๋ฐ‘์˜ ์ •๋ณด๋ฅผ ๋ณด๋‚ธ๋‹ค.

    • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•˜๋Š” ์•”ํ˜ธํ™” ๋ฐฉ์‹ ๋ชจ์Œ(Cipher Suites)
    • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ˆœ๊ฐ„์ ์œผ๋กœ ์ƒ์„ฑํ•œ ์ž„์˜์˜ ๋‚œ์ˆ˜(Random byte)
    • ๋งŒ์•ฝ ์ด์ „์— SSL ํ•ธ๋“œ ์…ฐ์ดํฌ๊ฐ€ ์™„๋ฃŒ๋œ ์ƒํƒœ๋ผ๋ฉด, ๊ทธ๋•Œ ์ƒ์„ฑ๋œ ์„ธ์…˜ ์•„์ด๋””(Session ID)
    • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” SSL ํ˜น์€ TLS ๋ฒ„์ „ ์ •๋ณด (SSL Protocol Version)

5. ์„œ๋ฒ„ - SSL HandShake์˜ ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„ : Server Hello
Client๊ฐ€ ๋ณด๋‚ด์˜จ Client Hello ํŒจํ‚ท์„ ๋ฐ›์•„, ๋ฐ‘์˜ ์ •๋ณด๋ฅผ Client์—๊ฒŒ ์‘๋‹ตํ•œ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•˜๋Š” ์•”ํ˜ธํ™” ๋ฐฉ์‹(Cipher Suite) ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์„œ Client๋กœ ์ „๋‹ฌ

  • Server๊ฐ€ ์ž์‹ ์˜ SSL ์ธ์ฆ์„œ๋ฅผ Client๋กœ ์ „๋‹ฌํ•œ๋‹ค.

    • SSL ์ธ์ฆ์„œ ๋‚ด๋ถ€์— Server๊ฐ€ ๋ฐœํ–‰ํ•œ ๊ณต๊ฐœํ‚ค๊ฐ€ ํฌํ•จ (๊ฐœ์ธํ‚ค๋Š” Server๊ฐ€ ์†Œ์œ )
    • SSL ์ธ์ฆ์„œ๋Š” CA(Certificate Authority, ์ธ์ฆ ๊ธฐ๊ด€)์˜ ๊ฐœ์ธํ‚ค๋กœ โ€˜์„œ๋ช…โ€˜๋˜์–ด ์žˆ๊ณ , Server๊ฐ€ CA๋กœ๋ถ€ํ„ฐ ๋ฏธ๋ฆฌ ๋ฐœ๊ธ‰ ๋ฐ›์•„๋†“์€ ์ƒํƒœ.
    • SSL ์ธ์ฆ ๋‚ด๋ถ€์— ๊ธฐ๋ก๋˜์–ด ์žˆ๋Š” Server์— ๋Œ€ํ•œ ์ •๋ณด(=์›๋ณธ ๋ฐ์ดํ„ฐ)
    • ์„œ๋ฒ„๊ฐ€ ์ˆœ๊ฐ„์ ์œผ๋กœ ์ƒ์„ฑํ•œ ์ž„์˜์˜ ๋‚œ์ˆ˜(์ˆซ์ž)

6. ํด๋ผ์ด์–ธํŠธ - SSL HandShake์˜ ์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„ : Premaster Secret ์ƒ์„ฑ

  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์˜ SSL ์ธ์ฆ์„œ๊ฐ€ ๋ฏฟ์„๋งŒํ•œ์ง€ ํ™•์ธ.

  • Client(๋ธŒ๋ผ์šฐ์ €)๊ฐ€ SSL ์ธ์ฆ์„œ(CA์˜_Private_key๋กœ ์•”ํ˜ธํ™”(ํ•ด์‹ฑ๋œ Server์— ๋Œ€ํ•œ ์ •๋ณด))๋ฅผ CA์˜ Public Key๋กœ ๋””์ฝ”๋”ฉํ•ด๋ณธ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Hash(Server์— ๋Œ€ํ•œ ์ •๋ณด)์˜ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Server์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ Hashํ™” ํ•ด์„œ ์„œ๋กœ ์ผ์น˜ํ•˜๋Š” ์ง€ ์ฒดํฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด SSL ์ธ์ฆ์„œ๊ฐ€ ์œ„์กฐ ๋๋Š” ์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๐Ÿ‘‰ ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์— CA์˜ Public Key๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Œ.

  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๋‚œ์ˆ˜์™€ ์„œ๋ฒ„์˜ ๋‚œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ premaster secret์„ ๋งŒ๋“ค์–ด์„œ Server๋กœ ์ „์†กํ•œ๋‹ค.

  • Client(๋ธŒ๋ผ์šฐ์ €)์—์„œ, ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋žœ๋ค๊ฐ’๊ณผ Client(๋ธŒ๋ผ์šฐ์ €)์—์„œ ์ƒ์„ฑํ•œ ๋žœ๋ค๊ฐ’์„ Server์˜ Public Key๋กœ ์•”ํ˜ธํ™”ํ•œ๋‹ค. ์ด ์•”ํ˜ธํ™”ํ•œ ๊ฐ’์„ premaster secret์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ๊ฐ’์„ Server๋กœ ์ „๋‹ฌํ•œ๋‹ค.

    • Server์˜ Publickey๋กœ์•”ํ˜ธํ™”(Server ๋žœ๋ค๊ฐ’ + Client ๋žœ๋ค๊ฐ’) = premaster secret = ์„ธ์…˜ ํ‚ค(session key)
      ๐Ÿ‘‰ ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์„ธ์…˜์€, โ€˜์ฟ ํ‚ค์™€ ์„ธ์…˜โ€™์—์„œ ๋งํ•˜๋Š” ์„ธ์…˜๊ณผ๋Š” ๋‹ค๋ฅธ ์˜๋ฏธ์ด๋‹ค.
      ๐Ÿ‘‰ ์„ธ์…˜ ์ข…๋ฃŒ๊ฐ€ ๋์„ ๋•Œ ์„ธ์…˜ ํ‚ค๋ฅผ ํ๊ธฐํ•œ๋‹ค๊ณ  ๋˜์–ด ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์„ธ์…˜์€ ํ•œ ๋ฒˆ์˜ ํ†ต์‹ ์„ ์• ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ์— ํ•œ ๋ฒˆ ์ ‘์†ํ–ˆ์„ ๋•Œ๋ถ€ํ„ฐ ์ข…๋ฃŒํ–ˆ์„ ๋•Œ๊นŒ์ง€๋ฅผ ํ•˜๋‚˜์˜ ์„ธ์…˜์œผ๋กœ ๋ณผ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์‚ฌ์ดํŠธ์— ํ•œ ๋ฒˆ ์ ‘์†ํ•œ ์ดํ›„๋ถ€ํ„ฐ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด์„œ ์„ธ์…˜ ํ‚ค๊ฐ€ ํ๊ธฐ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๋ง์ด๋‹ค.

7. ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ - SSL HandShake ์ข…๋ฃŒ & HTTPS ํ†ต์‹  ์‹œ์ž‘

  • ๋ธŒ๋ผ์šฐ์ €(Client)์™€ ์„œ๋ฒ„(Server)๋Š” SSL handshake๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๊ณ , ์ด์ œ๋Š” ์›น์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ์…˜ ํ‚ค(session key)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”ํ•˜๋ฉฐ HTTPS ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. - HTTPS ํ†ต์‹ ์ด ์™„๋ฃŒ๋˜๋Š” ์‹œ์ ์—์„œ ์„œ๋กœ์—๊ฒŒ ๊ณต์œ ๋œ ์„ธ์…˜ ํ‚ค(session key)๋ฅผ ํ๊ธฐํ•œ๋‹ค. ๋งŒ์•ฝ ์„ธ์…˜(session)์ด ์—ฌ์ „ํžˆ ์œ ์ง€๋˜๊ณ  ์žˆ๋‹ค๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” SSL handshake ์š”์ฒญ์ด ์•„๋‹Œ ์„ธ์…˜ ID๋งŒ ์„œ๋ฒ„์—๊ฒŒ ์•Œ๋ ค์ฃผ๋ฉด ๋œ๋‹ค.

  • Client Hello ๊ณผ์ •์—์„œ ๋ณด๋ฉด ์ด์ „์— SSL Handshake๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ, ์„ธ์…˜ ์•„์ด๋””๋ฅผ Serverํ•œํ…Œ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • SSL ์ธ์ฆ์„œ ๊ณผ์ •์—๋Š” ๋Œ€์นญํ‚ค ๋ฐฉ์‹๊ณผ ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹ ๋‘ ๊ฐœ ๋ชจ๋‘ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. SSL Handshake ๋‹จ๊ณ„๊นŒ์ง€๋Š” ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹, ๊ทธ ์ดํ›„์˜ HTTPS ํ†ต์‹ ์€ ๋Œ€์นญํ‚ค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

๐Ÿ™†โ€โ™‚๏ธ CA(Certificate Authority)๋ž€?

  • certification authority (CA)๋Š” ๊ณต๊ฐœํ‚ค์™€ ๊ณต๊ฐœ DNS๋ช…(ex.www.example.com)์˜ ์—ฐ๊ฒฐ์„ ๋ณด์žฅํ•˜๋Š” ๊ธฐ๊ด€์ด๋‹ค. ๋”ฐ๋ผ์„œ ์‹ ๋ขฐ์„ฑ์ด ์—„๊ฒฉํ•˜๊ฒŒ ๊ณต์ธ๋œ ๊ธฐ์—…๋“ค๋งŒ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ž์‹ ๋งŒ์˜ ์•”ํ˜ธํ™” ํ‚ค๋กœ ์›น์‚ฌ์ดํŠธ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์•”ํ˜ธํ•™์ ์œผ๋กœ ์‚ฌ์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํŠน์ • ๊ณต๊ฐœํ‚ค๊ฐ€ ํŠน์ • ์‚ฌ์ดํŠธ์˜ ๊ณต๊ฐœํ‚ค๋ผ๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•œ๋‹ค. ์ด ์„œ๋ช…์€ ๊ณ„์‚ฐ์ ์œผ๋กœ ์œ„์กฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค. ๋ธŒ๋ผ์šฐ์ €(๊ทธ ์™ธ ํด๋ผ์ด์–ธํŠธ)๋Š” ์ž˜ ์•Œ๋ ค์ง„ CS๊ฐ€ ์†Œ์œ ํ•œ ๊ณต๊ฐœํ‚ค๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” anchor ์ €์žฅ์†Œ(trust anchor stores)๋ฅผ ์œ ์ง€ํ•˜๊ณ  CS ์„œ๋ช…์„ ์•”ํ˜ธํ•™์ ์œผ๋กœ ํ™•์ธํ•˜๋Š”๋ฐ ์ด ๊ณต๊ฐœํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ™†โ€โ™‚๏ธ SSL(TLS)์ด๋ž€?
HTTPS๋Š” SSL(Secure Socket Layer)/TLS(Transport Layer Security) ์ „์†ก ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ๋‹ค. TCP, UDP์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์ธํ„ฐ๋„ท ํ†ต์‹ ์— ์•ˆ์ „ํ•œ ๊ณ„์ธต(layer)์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์›น ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด SSL/TLS ์ธ์ฆ์„œ์ด๋‹ค. TLS๋Š” SSL์˜ ๊ฐœ์„  ๋ฒ„์ „์ด๋ฉฐ, ์ตœ์‹  ์ธ์ฆ์„œ๋Š” TLS๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ํŽธ์˜์ ์œผ๋กœ SSL ์ธ์ฆ์„œ๋ผ๊ณ  ๋ถˆ๋ฆฌ์šด๋‹ค.

HTTPS์˜ ์žฅ๋‹จ์ 

  • HTTPS๋Š” ์›น์‚ฌ์ดํŠธ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•ด์ค€๋‹ค. ์›น ์‚ฌ์ดํŠธ์™€ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด์˜ ํ†ต์‹ ์„ ์นจ์ž…์ž๊ฐ€ ๊ฑด๋“œ๋ฆฌ์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค. (์นจ์ž…์ž๋ผํ•จ์€, ์•…์˜๊ฐ€ ์žˆ๋Š” ๊ณต๊ฒฉ์ž๋Š” ๋ฌผ๋ก ์ด๊ณ , ํ•ฉ๋ฒ•์ด์ง€๋งŒ ํ†ต์‹ ์— ์นจ์ž…ํ•˜์—ฌ ํŽ˜์ด์ง€์— ๊ด‘๊ณ ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ํ•ด๋‹นํ•œ๋‹ค.)
  • ๊ฐ€๋ฒผ์šด ์›น ์„œํ•‘์ด๋ผ๋ฉด HTTP๋„ ์ƒ๊ด€์—†์ง€๋งŒ, ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์›น ์„œ๋ฒ„์™€ ์ฃผ๊ณ  ๋ฐ›์•„์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด HTTP๋Š” ์ •๋ณด ์œ ์ถœ์˜ ์œ„ํ—˜์„ฑ์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. HTTPS๋Š” ์นจ์ž…์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์™€ ์‚ฌ์šฉ์ž ์‚ฌ์ด์˜ ํ†ต์‹ ์„ ๋ชฐ๋ž˜ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•จ์œผ๋กœ์จ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ด์ค€๋‹ค.
  • getUserMedia()๋ฅผ ํ†ตํ•œ ์‚ฌ์ง„ ์ดฌ์˜์ด๋‚˜ ์˜ค๋””์˜ค ๋…น์Œ, ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์›น ์•ฑ๊ณผ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ์›น ํ”Œ๋žซํผ ์‹ ๊ธฐ๋Šฅ๋“ค์€ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ช…์‹œ์ ์ธ ๊ถŒํ•œ ํ—ˆ๋ฝ์„ ํ•„์š”๋กœ ํ•œ๋‹ค. ์ง€์˜ค๋กœ์ผ€์ด์…˜ API์™€ ๊ฐ™์€ ์˜ค๋ž˜๋œ API๋“ค๋„ ์‹คํ–‰ํ•  ๋•Œ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ๋Š”๋ฐ, HTTPS๋Š” ์ด๋Ÿฌํ•œ ์ƒˆ ๊ธฐ๋Šฅ๊ณผ ์—…๋ฐ์ดํŠธ๋œ API์— ๋Œ€ํ•œ ๊ถŒํ•œ ํ—ˆ๋ฝ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.
  • ๋„ค์ด๋ฒ„, ๋‹ค์Œ์€ ๋ฌผ๋ก ์ด๊ณ  ๊ตฌ๊ธ€ ์—ญ์‹œ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO: Search Engine Optimization) ๊ด€๋ จ ๋‚ด์šฉ์„ HTTPS ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด์„œ ์ ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ์ฆ‰, ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ์‹œ ์ƒ์œ„ ๋…ธ์ถœ๋˜๋Š” ๊ธฐ์ค€ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ณด์•ˆ ์š”์†Œ์ด๋‹ค.
  • ๋ชจ๋“  ์‚ฌ์ดํŠธ์—์„œ ํ…์ŠคํŠธ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ ค ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ค‘์š”ํ•œ ์‚ฌ์ดํŠธ๋Š” HTTPS๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์€ ์‚ฌ์ดํŠธ๋Š” HTTP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • HTTPS๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด ์•ˆ์ „ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” CA ๊ธฐ์—…์ด ์•„๋‹ˆ๋ผ ์ž์ฒด์ ์œผ๋กœ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” CA ๊ธฐ์—…์„ ํ†ตํ•ด์„œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๐Ÿ“ Reference
1. https://mangkyu.tistory.com/98
2. https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Network/HTTP%20%26%20HTTPS.md
3. https://rachel-kwak.github.io/2021/03/08/HTTPS.html
4. https://jaeseongdev.github.io/development/2021/07/02/HTTPS,SSL,TLS/

profile
Backend Developer - "Growth itself contains the germ of happiness"

0๊ฐœ์˜ ๋Œ“๊ธ€