Skip to main content

HTTPS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub Pages ์‚ฌ์ดํŠธ ๋ณดํ˜ธ

HTTPS๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ํŠธ๋ž˜ํ”ฝ์„ ์Šค๋ˆ„ํ•‘ ๋˜๋Š” ๋ณ€์กฐํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ์•”ํ˜ธํ™” ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. GitHub Pages ์‚ฌ์ดํŠธ์— HTTPS๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ชจ๋“  HTTP ์š”์ฒญ์„ HTTPS๋กœ ํˆฌ๋ช…ํ•˜๊ฒŒ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

GitHub Pages์€(๋Š”) ์กฐ์ง์˜ GitHub Free ๋ฐ GitHub Free์ด(๊ฐ€) ์žˆ๋Š” ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ GitHub Pro, GitHub Team, GitHub Enterprise Cloud ๋ฐ GitHub Enterprise Server์˜ ํผ๋ธ”๋ฆญ ๋ฐ ํ”„๋ผ์ด๋น— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub์˜ ํ”Œ๋žœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” GitHub Pages ์‚ฌ์ดํŠธ์— HTTPS๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTPS ๋ฐ GitHub Pages ์ •๋ณด

์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ์‚ฌ์ดํŠธ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  GitHub Pages ์‚ฌ์ดํŠธ๋Š” HTTPS ๋ฐ HTTPS ์ ์šฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ๋ฐ GitHub Pages ์ •๋ณด ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ๋ฐ GitHub Pages ๋ฌธ์ œ ํ•ด๊ฒฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub Pages ์‚ฌ์ดํŠธ๋Š” ์•”ํ˜ธ ๋˜๋Š” ์‹ ์šฉ ์นด๋“œ ๋ฒˆํ˜ธ ์ „์†ก๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ํŠธ๋žœ์žญ์…˜์— ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์‚ฌ์ดํŠธ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ํ”„๋ผ์ด๋น—์ธ ๊ฒฝ์šฐ์—๋„ GitHub Pages ์‚ฌ์ดํŠธ๋Š” ์ธํ„ฐ๋„ท์—์„œ ํผ๋ธ”๋ฆญ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•ด๋‹น ํ”Œ๋žœ ๋˜๋Š” ์กฐ์ง์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ). ์‚ฌ์ดํŠธ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒŒ์‹œํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ํ•ญ๋ชฉ

RFC3280์€ ์ผ๋ฐ˜ ์ด๋ฆ„์˜ ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 64์ž์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ์ฆ์„œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด GitHub Pages ์‚ฌ์ดํŠธ์˜ ์ „์ฒด ๋„๋ฉ”์ธ ์ด๋ฆ„์ด 64์ž ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GitHub Pages ์‚ฌ์ดํŠธ์— HTTPS ์ ์šฉ

  1. GitHub์—์„œ ์‚ฌ์ดํŠธ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ์•„๋ž˜์—์„œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. "์„ค์ •" ํƒญ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํƒญ์„ ๋ณด์—ฌ ์ฃผ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ—ค๋”์˜ ์Šคํฌ๋ฆฐ์ƒท. "์„ค์ •" ํƒญ์ด ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์‚ฌ์ด๋“œ๋ฐ”์˜ โ€œ์ฝ”๋“œ ๋ฐ ์ž๋™ํ™”โ€ ์„น์…˜์—์„œ ํŽ˜์ด์ง€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. โ€œGitHub Pagesโ€์—์„œ HTTPS ์ ์šฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์„œ ํ”„๋กœ๋น„์ €๋‹ ๋ฌธ์ œ ํ•ด๊ฒฐ(โ€œ์ธ์ฆ์„œ๊ฐ€ ์•„์ง ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹คโ€ ์˜ค๋ฅ˜)

ํŽ˜์ด์ง€ ์„ค์ •์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋ฉด ์ž๋™ DNS ๊ฒ€์‚ฌ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒ€์‚ฌ๋Š” DNS ์„ค์ •์ด GitHub์—์„œ ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์˜ค๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ์— ์„ฑ๊ณตํ•˜๋ฉด GitHub๋Š” Let's Encrypt์—์„œ TLS ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•˜๋Š” ์ž‘์—…์„ ํ์— ๋Œ€๊ธฐ์‹œํ‚ต๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์œผ๋ฉด GitHub๊ฐ€ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ TLS ์ข…๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„์— ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์ด๋ฆ„ ์˜†์— ํ™•์ธ ํ‘œ์‹œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์†Œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์„ ํด๋ฆญํ•˜๊ณ  ๋ช‡ ๋ถ„ ํ›„์—๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์ด๋ฆ„ ์˜†์— ์žˆ๋Š” ์ œ๊ฑฐ๋ฅผ ํด๋ฆญํ•ด ๋ณด์„ธ์š”. ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅ์„ ๋‹ค์‹œ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ทจ์†Œ๋˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

ํ˜ผํ•ฉ ์ฝ˜ํ…์ธ  ๋ฌธ์ œ ํ•ด๊ฒฐ

GitHub Pages ์‚ฌ์ดํŠธ์—์„œ HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ–ˆ์ง€๋งŒ ์‚ฌ์ดํŠธ์˜ HTML์ด ์—ฌ์ „ํžˆ HTTP๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€, CSS ๋˜๋Š” JavaScript๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์ดํŠธ๋Š” _ํ˜ผํ•ฉ ์ฝ˜ํ…์ธ _๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜ผํ•ฉ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์‚ฌ์ดํŠธ์˜ ๋ณด์•ˆ์ด ์ €ํ•˜๋˜๊ณ  ์ž์‚ฐ ๋กœ๋“œ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ์˜ ํ˜ผํ•ฉ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์‚ฌ์ดํŠธ์˜ HTML์—์„œ http://๋ฅผ https://๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ชจ๋“  ์ž์‚ฐ์ด HTTPS๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ž์‚ฐ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ์œ„์น˜์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์ดํŠธ์—์„œ Jekyll์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ HTML ํŒŒ์ผ์€ _layouts ํด๋”์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CSS๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ HTML ํŒŒ์ผ์˜ <head> ์„น์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • JavaScript๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ <head> ์„น์…˜ ๋˜๋Š” ๋‹ซ๋Š” </body> ํƒœ๊ทธ ๋ฐ”๋กœ ์•ž์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€๋Š” ์ข…์ข… <body> ์„น์…˜์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ

์‚ฌ์ดํŠธ์˜ ์›๋ณธ ํŒŒ์ผ์—์„œ ์ž์‚ฐ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ๋˜๋Š” GitHub์—์„œ http์— ๋Œ€ํ•œ ์‚ฌ์ดํŠธ์˜ ์›๋ณธ ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•ด ๋ณด์„ธ์š”.

HTML ํŒŒ์ผ์—์„œ ์ฐธ์กฐ๋˜๋Š” ์ž์‚ฐ์˜ ์˜ˆ

์ž์‚ฐ ํ˜•์‹HTTPHTTPS
CSS<link rel="stylesheet" href="http://example.com/css/main.css"><link rel="stylesheet" href="https://example.com/css/main.css">
JavaScript<script type="text/javascript" src="http://example.com/js/main.js"></script><script type="text/javascript" src="https://example.com/js/main.js"></script>
์ด๋ฏธ์ง€<a href="http://www.somesite.com"><img src="http://www.example.com/logo.jpg" alt="Logo"></a><a href="https://www.somesite.com"><img src="https://www.example.com/logo.jpg" alt="Logo"></a>

DNS ๊ตฌ์„ฑ ํ™•์ธ

๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ์˜ DNS ๊ตฌ์„ฑ์œผ๋กœ ์ธํ•ด HTTPS ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ถ”๊ฐ€ DNS ๋ ˆ์ฝ”๋“œ ๋˜๋Š” GitHub Pages์˜ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๋Š” ๋ ˆ์ฝ”๋“œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTPS ์ธ์ฆ์„œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ƒ์„ฑ๋˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ @์ธ A, AAAA, ALIAS, ANAME ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋กœ ์žˆ๊ฑฐ๋‚˜, www ํ•˜์œ„ ๋„๋ฉ”์ธ ๋˜๋Š” GitHub Pages์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ธฐํƒ€ ์‚ฌ์šฉ์ž ์ง€์ • ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” CNAME ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋กœ ์žˆ์œผ๋ฉด HTTPS ์ธ์ฆ์„œ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜คDNS ๋ ˆ์ฝ”๋“œ ์ข…๋ฅ˜DNS ๋ ˆ์ฝ”๋“œ ์ด๋ฆ„DNS ๋ ˆ์ฝ”๋“œ ๊ฐ’
Apex ๋„๋ฉ”์ธ
(example.com)
A@185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Apex ๋„๋ฉ”์ธ
(example.com)
AAAA@2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
Apex ๋„๋ฉ”์ธ
(example.com)
ALIAS ๋˜๋Š” ANAME@USERNAME.github.io ๋˜๋Š”
ORGANIZATION.github.io
ํ•˜์œ„ ๋„๋ฉ”์ธ
(www.example.com,
blog.example.com)
CNAMESUBDOMAIN.example.com.USERNAME.github.io ๋˜๋Š”
ORGANIZATION.github.io