๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daily Front_Minhhk

HTTP/HTTPS ๋ณธ๋ฌธ

Code๊ฐœ๋ฐœ์ผ์ง€

HTTP/HTTPS

Minhhk 2023. 1. 7. 19:47
๐Ÿ“Œ HTTP

 

HTTP

  • ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ
    • Request Response ๊ตฌ์กฐ
  • ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ(Stateless)
    • ๋กœ๊ทธ์ธ์ด ํ•„์š” ์—†๋Š” ๋‹จ์ˆœํ•œ ์„œ๋น„์Šค ์†Œ๊ฐœ ํ™”๋ฉด ๊ฐ™์€ ๊ฒฝ์šฐ,,
    • ์žฅ์ : ์„œ๋ฒ„ ํ™•์žฅ์„ฑ ๋†’์Œ(์Šค์ผ€์ผ ์•„์›ƒ)→(์‘๋‹ต ์„œ๋ฒ„๋ฅผ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด ๋ฌดํ•œํ•œ ์„œ๋ฒ„ ์ฆ์„ค ๊ฐ€๋Šฅ)
    • ๋‹จ์ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ์ „์†ก
  • ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless)
    • ์š”์ฒญ์„ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ๋งŒ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ณ  ์‘๋‹ต์„ ์ฃผ๊ณ  ๋‚˜๋ฉด TCP/IP ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค
    • ๋”ฐ๋ผ์„œ ์ตœ์†Œํ•œ ์ž์›์œผ๋กœ ์„œ๋ฒ„์œ ์ง€ ๊ฐ€๋Šฅ
  • HTTP ๋ฉ”์„ธ์ง€
  • ๋‹จ์ˆœํ•จ, ํ™•์žฅ ๊ฐ€๋Šฅ

 

 

 

๐Ÿ“Œ HTTPS (HTTP Secure)

์•”ํ˜ธํ™” ๋ฐฉ์‹

๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”๋ฅผ ํ•  ๋•Œ์—๋Š” ์•”ํ˜ธํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ‚ค, ์•”ํ˜ธํ™”ํ•œ ๊ฒƒ์„ ํ•ด์„(๋ณตํ˜ธํ™”)ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ‚ค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋•Œ ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค๊ฐ€ ๋™์ผํ•˜๋‹ค๋ฉด ๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹,

๋‹ค๋ฅด๋‹ค๋ฉด ๊ณต๊ฐœ ํ‚ค(๋น„๋Œ€์นญ ํ‚ค) ์•”ํ˜ธํ™” ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

1. ๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹

๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ํ•˜๋‚˜์˜ ํ‚ค๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ ํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ณต๊ฐœ ํ‚ค ๋ฐฉ์‹์— ๋น„ํ•ด์„œ ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ‚ค๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ณผ์ •์—์„œ ํƒˆ์ทจ ๋‹นํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ์•”ํ˜ธํ™”๊ฐ€ ์†Œ์šฉ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‹ ๊ฒฝ์„ ๋งŽ์ด ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

2. ๊ณต๊ฐœ ํ‚ค(๋น„๋Œ€์นญ ํ‚ค) ์•”ํ˜ธํ™” ๋ฐฉ์‹

๋น„๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ๋‘ ๊ฐœ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ ํ‚ค์™€ ๋‹ค๋ฅธ ํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋‘ ๊ฐœ์˜ ํ‚ค๋ฅผ ๊ฐ๊ฐ ๊ณต๊ฐœ ํ‚ค, ๋น„๋ฐ€ ํ‚ค ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๊ณต๊ฐœ ํ‚ค๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ณต๊ฐœ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฌ๋“ ์ง€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“  ์ด ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด, ๋น„๋ฐ€ ํ‚ค๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋งŒ ๊ทธ ๋‚ด์šฉ์„ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณดํ†ต ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต๊ฐœ ํ‚ค๋ฅผ, ์š”์ฒญ์„ ๋ฐ›๋Š” ์„œ๋ฒ„๊ฐ€ ๋น„๋ฐ€ ํ‚ค๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด ๋•Œ, ๋น„๋ฐ€ ํ‚ค๋Š” ์„œ๋ฒ„๊ฐ€ ํ•ดํ‚น๋‹นํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ ์ด์ƒ ํƒˆ์ทจ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณต๊ฐœ ํ‚ค ๋ฐฉ์‹์€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํƒˆ์ทจ ๋‹นํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„, ๋น„๋ฐ€ ํ‚ค๊ฐ€ ์—†๋‹ค๋ฉด ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋Œ€์นญ ํ‚ค ๋ฐฉ์‹๋ณด๋‹ค ๋ณด์•ˆ์„ฑ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋Œ€์นญ ํ‚ค ๋ฐฉ์‹ ๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜์—ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ๋ชจํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

SSL/TLS ํ”„๋กœํ† ์ฝœ

HTTPS๋Š” HTTP ํ†ต์‹ ์„ ํ•˜๋Š” ์†Œ์ผ“ ๋ถ€๋ถ„์—์„œ SSL ํ˜น์€ TLS๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธ์ฆ๊ณผ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ SSL์ด ํ‘œ์ค€ํ™”๋˜๋ฉฐ ๋ฐ”๋€ ์ด๋ฆ„์ด TLS์ด๋ฏ€๋กœ ๊ฐ™์€ ์‚ฌ์‹ค์ƒ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

SSL/TLS๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

  • CA๋ฅผ ํ†ตํ•œ ์ธ์ฆ์„œ ์‚ฌ์šฉ
  • ๋Œ€์นญ ํ‚ค, ๊ณต๊ฐœ ํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ๋ชจ๋‘ ์‚ฌ์šฉ

 

์ธ์ฆ์„œ์™€ CA(Certificate Authority)

HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์˜ ์‘๋‹ต๊ณผ ํ•จ๊ป˜ ์ „๋‹ฌ๋œ ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์ธ์ฆ์„œ๋Š” ์„œ๋ฒ„์˜ ์‹ ์›์„ ๋ณด์ฆํ•ด์ค๋‹ˆ๋‹ค.

์ด๋•Œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” ๊ณต์ธ๋œ ๊ธฐ๊ด€๋“ค์„ Certificate Authority, CA๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

1. ์„œ๋ฒ„๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•ด์„œ CA๋กœ ์„œ๋ฒ„์˜ ์ •๋ณด์™€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

2. CA๋Š” ์„œ๋ฒ„์˜ ๊ณต๊ฐœ ํ‚ค์™€ ์ •๋ณด๋ฅผ CA์˜ ๋น„๋ฐ€ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

3. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด CA์—๊ฒŒ ๋ฐœ๊ธ‰๋ฐ›์€ ์ธ์ฆ์„œ๋ฅผ ๋ณด๋‚ด์ค๋‹ˆ๋‹ค.

4. ์ด ๋•Œ, ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €๋Š” CA๋“ค์˜ ๋ฆฌ์ŠคํŠธ์™€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

5. ์šฐ์„  ํ•ด๋‹น ์ธ์ฆ์„œ๊ฐ€ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” CA๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ์ธ์ง€ ํ™•์ธํ•˜๊ณ , ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” CA๋ผ๋ฉด ํ•ด๋‹นํ•˜๋Š” CA์˜ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ธ์ฆ  ์„œ์˜ ๋ณตํ˜ธํ™”๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

6. CA์˜ ๋น„๋ฐ€ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ(์ธ์ฆ์„œ)๋Š” CA์˜ ๊ณต๊ฐœ ํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ •๋ง๋กœ CA์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ๊ฐ€ ๋งž๋‹ค๋ฉด ๋ณตํ˜ธํ™”๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ง„ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

  • ๋ณตํ˜ธํ™”๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ง„ํ–‰ ๋œ๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์ •๋ณด์™€ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์–ป๊ฒŒ ๋จ๊ณผ ๋™์‹œ์— ํ•ด๋‹น ์„œ๋ฒ„๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ž„์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ณตํ˜ธํ™”๊ฐ€ ์‹คํŒจํ•œ๋‹ค๋ฉด, ์ด๋Š” ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด์ค€ ์ธ์ฆ์„œ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ธ์ฆ์„œ์ž„์„ ํ™•์ธํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ •๋ฆฌํ•˜์ž๋ฉด, ์ด๋ ‡๊ฒŒ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ„์˜ CA๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋ฅผ ์ธ์ฆํ•˜๋Š” ๊ณผ์ •๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์•„์šฐ๋ฅธ ํ”„๋กœํ† ์ฝœ์„ SSL ๋˜๋Š” TLS์ด๋ผ๊ณ  ๋งํ•˜๊ณ , HTTP์— SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ๋”ํ•œ ๊ฒƒ์„ HTTPS๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 


 

HTTPS ์‚ฌ์„ค ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์„œ๋ฒ„ ๊ตฌํ˜„

Homebrew๋ฅผ ํ†ตํ•ด ์„ค์น˜(macOS)

brew install mkcert

์ธ์ฆ์„œ ์ƒ์„ฑ

  1. ๋กœ์ปฌ์„ ์ธ์ฆ๋œ ๋ฐœ๊ธ‰๊ธฐ๊ด€์œผ๋กœ ์ถ”๊ฐ€
mkcert -install
//๋น„๋ฒˆ -> ์ปดํ“จํ„ฐ ๋น„๋ฒˆ

์ด๋ ‡๊ฒŒ ๋œฌ๋‹ค!

  1. ๋กœ์ปฌํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ → ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅ
mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1

localhost, 127.0.0.1(IPv4), ::1(IPv6)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ์„œcert.pem, key.pem์ด๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

โš ๏ธ key.pem์€ ๊ฐœ์ธํ‚ค๋ผ์„œ. git์— ์ปค๋ฐ‹ํ•˜์ง€๋ง๊ณ , ์•”ํ˜ธ์ฒ˜๋Ÿผ ๋‹ค๋ฃจ์–ด์•ผํ•œ๋‹ค.

HTTPS ์„œ๋ฒ„ ์ž‘์„ฑ

node.js ํ™˜๊ฒฝ์—์„œ https ๋‚ด์žฅ ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด์„œ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

express.js๋ฅผ ํ†ตํ•ด์„œ ๋งŒ๋“ค์ˆ˜๋„ ์žˆ๋‹ค.

๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ ์ธ์ฆ์„œ ํŒŒ์ผ๋“ค์„ HTTPS ์„œ๋ฒ„์— ์ ์šฉํ•ด์ฃผ๋Š” ์ž‘์—…์ด ์„ ํ–‰๋˜์–ด์•ผํ•œ๋‹ค.

__dirname์€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

๋กœ์ปฌ์€ ์ธ์ฆ๋œ ๋ฐœ๊ธ‰๊ธฐ๊ด€์œผ๋กœ ๋“ฑ๋ก์ด ๋˜์–ด์žˆ๊ณ , ์ธ์ฆ์„œ๋Š” ์„œ๋ฒ„์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

 

Node.js https ๋ชจ๋“ˆ ์ด์šฉ

const https = require('https');
const fs = require('fs');

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/key.pem', 'utf-8'),
      cert: fs.readFileSync(__dirname + '/cert.pem', 'utf-8'),
    },
    function (req, res) {
      res.write('Congrats! You made https server now :)');
      res.end();
    }
  )
  .listen(3001);

์ด์ œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ ํ›„ https://localhost:3001๋กœ ์ ‘์†ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์˜ url ์ฐฝ ์™ผ์ชฝ์— ์ž๋ฌผ์‡ ๊ฐ€ ์ž ๊ฒจ์žˆ๋Š” HTTPSํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค!

console.log(req.body);
  console.log(userInfo);

 

 

express.js ์ด์šฉ

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/key.pem', 'utf-8'),
      cert: fs.readFileSync(__dirname + '/cert.pem', 'utf-8'),
    },
    app.use('/', (req, res) => {
      res.send('Congrats! You made https server now :)');
    })
  )
  .listen(3001);

๋งŒ์•ฝ express.js ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ,

๋‹ค์Œ๊ณผ ๊ฐ™์ด https.createServer์˜ ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋“ค์–ด๊ฐˆ callback ํ•จ์ˆ˜๋ฅผ Express ๋ฏธ๋“ค์›จ์–ด๋กœ ๊ต์ฒด!

 

 

ngrok์œผ๋กœ ํ„ฐ๋„๋ง๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

HTTP๋กœ ๋งŒ๋“ค์–ด์ง„ ์„œ๋ฒ„๋ฅผ HTTPS ํ”„๋กœํ† ์ฝœ๋กœ ํ„ฐ๋„๋ง ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•จ!

 

ngrok - Online in One Line

Zero Trust Add SSO, Mutual TLS, IP Policy, and webhook signature verification.

ngrok.com

 

'Code๊ฐœ๋ฐœ์ผ์ง€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[cookie] sprint-auth-cookie  (0) 2023.01.07
Cookie  (0) 2023.01.07
๋„คํŠธ์›Œํฌ[TCP/UDP, OSI 7]  (0) 2023.01.06
์›น ์ ‘๊ทผ์„ฑ, WAI-ARIA  (1) 2023.01.02
์›น ํ‘œ์ค€, SE  (0) 2022.12.30