IT๊ธฐ์ดˆ

SSL ์ธ์ฆ์„œ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰๋ฐ›๊ณ  HTTPS ์ ์šฉํ•˜๋Š” ๋ฒ•

๐Ÿฅ„ํ…Œํฌ ํ•œ ์Šคํ‘ผ 2026. 5. 25. 17:58

๋ชฉ์ฐจ

  1. HTTPS ์ ์šฉ, ์ด์ œ๋Š” ์„ ํƒ์ด ์•„๋‹Œ ํ•„์ˆ˜
  2. Let's Encrypt๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  3. ์ค€๋น„ ์‚ฌํ•ญ ํ™•์ธ
  4. Certbot ์„ค์น˜ํ•˜๊ธฐ
  5. SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ Nginx์— ์ž๋™ ์ ์šฉ
  6. HTTPS ์ ์šฉ ํ™•์ธํ•˜๊ธฐ
  7. ์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹  ์„ค์ •
  8. ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์™€ ํ•ด๊ฒฐ๋ฒ•
  9. ์ •๋ฆฌ

1. HTTPS ์ ์šฉ, ์ด์ œ๋Š” ์„ ํƒ์ด ์•„๋‹Œ ํ•„์ˆ˜

๊ณผ๊ฑฐ์—๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ๊ตฌ๋งคํ•˜๋Š” ๋ฐ ์—ฐ๊ฐ„ ์ˆ˜์‹ญ๋งŒ ์›์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ๋‚˜ ์†Œ๊ทœ๋ชจ ์‚ฌ์ดํŠธ๋Š” HTTP๋ฅผ ๊ทธ๋ƒฅ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์ƒํ™ฉ์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. Let's Encrypt ๋•๋ถ„์— SSL ์ธ์ฆ์„œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋๊ณ , ๊ตฌ๊ธ€์€ HTTPS๋ฅผ ๊ฒ€์ƒ‰ ๋žญํ‚น ์š”์†Œ๋กœ ๋ฐ˜์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๋Š” HTTP ์‚ฌ์ดํŠธ์— "์•ˆ์ „ํ•˜์ง€ ์•Š์Œ" ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” Ubuntu ์„œ๋ฒ„์— Nginx๊ฐ€ ์„ค์น˜๋œ ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ, Let's Encrypt ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ณ  HTTPS๋ฅผ ์ ์šฉํ•˜๋Š” ์ „ ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•ˆ๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

2. Let's Encrypt๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

Let's Encrypt๋Š” ๋ชจ์งˆ๋ผ ์žฌ๋‹จ ๋“ฑ์ด ์ง€์›ํ•˜๋Š” ๋น„์˜๋ฆฌ ์ธ์ฆ ๊ธฐ๊ด€(CA)์œผ๋กœ, ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋ฌด๋ฃŒ๋กœ SSL/TLS ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด ์ค๋‹ˆ๋‹ค. 2016๋…„ ์„œ๋น„์Šค ์‹œ์ž‘ ์ดํ›„ ํ˜„์žฌ๊นŒ์ง€ ์ˆ˜์–ต ๊ฐœ์˜ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ ์„ธ๊ณ„ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ๋ฌด๋ฃŒ ์ธ์ฆ ๊ธฐ๊ด€์ž…๋‹ˆ๋‹ค.

Let's Encrypt ์ธ์ฆ์„œ์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์™„์ „ ๋ฌด๋ฃŒ์ด๋ฉฐ, ๋ฐœ๊ธ‰ ๊ณผ์ •์ด ์ž๋™ํ™”๋˜์–ด ์žˆ์–ด ๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น์–ด๋งŒ์œผ๋กœ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์œ ํšจ ๊ธฐ๊ฐ„์€ 90์ผ์ด์ง€๋งŒ ์ž๋™ ๊ฐฑ์‹ ์„ ์„ค์ •ํ•˜๋ฉด ๋งŒ๋ฃŒ ๊ฑฑ์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹ ๋ขฐํ•˜๋Š” ์ธ์ฆ์„œ์ž…๋‹ˆ๋‹ค.

3. ์ค€๋น„ ์‚ฌํ•ญ ํ™•์ธ

SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์ „์— ์•„๋ž˜ ์กฐ๊ฑด์ด ๊ฐ–์ถฐ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๋ณด์œ  ํ•„์ˆ˜ Let's Encrypt๋Š” IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ๋„๋ฉ”์ธ์— ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์ด ์—†๋‹ค๋ฉด ๋จผ์ € ๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ•˜๊ณ  ์„œ๋ฒ„ IP์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

DNS ์ „ํŒŒ ์™„๋ฃŒ ๋„๋ฉ”์ธ์ด ์„œ๋ฒ„ IP๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก DNS ์„ค์ •์ด ์™„๋ฃŒ๋˜๊ณ  ์ „ํŒŒ๊นŒ์ง€ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ณผ์ •์—์„œ Let's Encrypt ์„œ๋ฒ„๊ฐ€ ๋„๋ฉ”์ธ์œผ๋กœ ์ ‘์†์„ ์‹œ๋„ํ•ด ์†Œ์œ ๊ถŒ์„ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

80๋ฒˆ ํฌํŠธ ์˜คํ”ˆ ๋ฐฉํ™”๋ฒฝ์—์„œ 80๋ฒˆ ํฌํŠธ๊ฐ€ ์—ด๋ ค ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์‹œ HTTP๋ฅผ ํ†ตํ•œ ๋„๋ฉ”์ธ ์†Œ์œ ๊ถŒ ํ™•์ธ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

Nginx ์‹คํ–‰ ์ค‘ Nginx๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4. Certbot ์„ค์น˜ํ•˜๊ธฐ

Certbot์€ Let's Encrypt ์ธ์ฆ์„œ ๋ฐœ๊ธ‰์„ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ๊ณต์‹ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Certbot์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰, Nginx ์„ค์ • ์ˆ˜์ •, ์ž๋™ ๊ฐฑ์‹ ๊นŒ์ง€ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ด ์ค๋‹ˆ๋‹ค.

๋จผ์ € ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

sudo apt update

Certbot๊ณผ Nginx ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt install certbot python3-certbot-nginx -y

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด certbot --version ๋ช…๋ น์–ด๋กœ ์ •์ƒ ์„ค์น˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

5. SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ Nginx์— ์ž๋™ ์ ์šฉ

์•„๋ž˜ ๋ช…๋ น์–ด ํ•˜๋‚˜๋กœ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰๊ณผ Nginx ์„ค์ • ์ž๋™ ๋ณ€๊ฒฝ์ด ๋™์‹œ์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ฃผ์†Œ๋Š” ๋ณธ์ธ์˜ ๋„๋ฉ”์ธ์œผ๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

sudo certbot --nginx -d ๋„๋ฉ”์ธ์ฃผ์†Œ -d www.๋„๋ฉ”์ธ์ฃผ์†Œ

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์— ๋‹ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋กœ ์ด๋ฉ”์ผ ์ฃผ์†Œ ์ž…๋ ฅ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ๋งŒ๋ฃŒ ์•Œ๋ฆผ๊ณผ ๋ณด์•ˆ ๊ณต์ง€๋ฅผ ๋ฐ›์„ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ๋กœ ์„œ๋น„์Šค ์•ฝ๊ด€ ๋™์˜ ์—ฌ๋ถ€๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. A๋ฅผ ์ž…๋ ฅํ•ด ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ๋กœ ๋‰ด์Šค๋ ˆํ„ฐ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. Y ๋˜๋Š” N ์ค‘ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ HTTP๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ HTTPS๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ• ์ง€ ๋ฌป์Šต๋‹ˆ๋‹ค. 2๋ฒˆ(Redirect)์„ ์„ ํƒํ•˜๋ฉด http://๋กœ ์ ‘์†ํ•ด๋„ ์ž๋™์œผ๋กœ https://๋กœ ์ด๋™ํ•˜๋„๋ก ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

Successfully deployed certificate ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ๋ฐœ๊ธ‰์ด ์™„๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

6. HTTPS ์ ์šฉ ํ™•์ธํ•˜๊ธฐ

๋ฐœ๊ธ‰์ด ์™„๋ฃŒ๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋„๋ฉ”์ธ์— ์ ‘์†ํ•ด ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์†Œ์ฐฝ์— ์ž๋ฌผ์‡  ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋˜๋ฉด HTTPS๊ฐ€ ์ •์ƒ ์ ์šฉ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. http://๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ https://๋กœ ์ด๋™ํ•˜๋Š”์ง€๋„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

SSL ์ ์šฉ ์ƒํƒœ๋ฅผ ๋” ์ž์„ธํžˆ ํ™•์ธํ•˜๋ ค๋ฉด SSL Labs(ssllabs.com/ssltest)์—์„œ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•ด ์ธ์ฆ์„œ ๋“ฑ๊ธ‰๊ณผ ๋ณด์•ˆ ์„ค์ •์„ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. A ๋“ฑ๊ธ‰ ์ด์ƒ์ด๋ฉด ์–‘ํ˜ธํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

7. ์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹  ์„ค์ •

Let's Encrypt ์ธ์ฆ์„œ๋Š” 90์ผ๋งˆ๋‹ค ๊ฐฑ์‹ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Certbot์€ ์„ค์น˜ ์‹œ ์ž๋™์œผ๋กœ ๊ฐฑ์‹  ํƒ€์ด๋จธ๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„ ์ž‘์—… ์—†์ด๋„ ์ž๋™ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.

์ž๋™ ๊ฐฑ์‹ ์ด ์ œ๋Œ€๋กœ ์„ค์ •๋๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

sudo systemctl status certbot.timer

active ์ƒํƒœ์ด๋ฉด ์ž๋™ ๊ฐฑ์‹ ์ด ํ™œ์„ฑํ™”๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๊ฐฑ์‹ ์ด ์ž˜ ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธ๋งŒ ํ•ด๋ณด๋ ค๋ฉด(์‹ค์ œ ๊ฐฑ์‹  ์—†์ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜) ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

sudo certbot renew --dry-run

Congratulations, all simulated renewals succeeded ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๋ฉด ์ž๋™ ๊ฐฑ์‹ ์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

8. ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์™€ ํ•ด๊ฒฐ๋ฒ•

์˜ค๋ฅ˜ 1. Challenge failed – Could not connect to domain ๋„๋ฉ”์ธ์ด ์„œ๋ฒ„ IP๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜, DNS ์ „ํŒŒ๊ฐ€ ์•„์ง ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. DNS ์„ค์ •์„ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์ „ํŒŒ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ 2. 80๋ฒˆ ํฌํŠธ ์—ฐ๊ฒฐ ์‹คํŒจ ๋ฐฉํ™”๋ฒฝ์—์„œ 80๋ฒˆ ํฌํŠธ๊ฐ€ ์ฐจ๋‹จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. sudo ufw allow 80 ๋ช…๋ น์œผ๋กœ ํฌํŠธ๋ฅผ ์—ด๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ 3. Nginx ์„ค์ • ์˜ค๋ฅ˜ Certbot์ด Nginx ์„ค์ •์„ ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ธฐ์กด ์„ค์ •๊ณผ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. sudo nginx -t ๋ช…๋ น์œผ๋กœ ์„ค์ • ํŒŒ์ผ ๋ฌธ๋ฒ•์„ ํ™•์ธํ•˜๊ณ , ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ˆ˜์ • ํ›„ sudo systemctl reload nginx๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ 4. Too many certificates issued ๊ฐ™์€ ๋„๋ฉ”์ธ์— ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๋„ˆ๋ฌด ๋งŽ์€ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰์„ ์‹œ๋„ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. Let's Encrypt๋Š” ๋„๋ฉ”์ธ๋‹น ์ฃผ๋‹น 5ํšŒ ๋ฐœ๊ธ‰ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž ์‹œ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

9. ์ •๋ฆฌ

์˜ค๋Š˜ ๋ฐฐ์šด ํ•ต์‹ฌ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • Let's Encrypt๋Š” ๋ฌด๋ฃŒ๋กœ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด ์ฃผ๋Š” ๋น„์˜๋ฆฌ ์ธ์ฆ ๊ธฐ๊ด€์ž…๋‹ˆ๋‹ค.
  • Certbot์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ น์–ด ๋ช‡ ์ค„๋กœ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰๊ณผ Nginx ์„ค์ •์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์ฆ์„œ ์œ ํšจ ๊ธฐ๊ฐ„์€ 90์ผ์ด์ง€๋งŒ Certbot์˜ ์ž๋™ ๊ฐฑ์‹  ๊ธฐ๋Šฅ์œผ๋กœ ๋ณ„๋„ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฐœ๊ธ‰ ์ „ ๋„๋ฉ”์ธ DNS ์„ค์ • ์™„๋ฃŒ, 80๋ฒˆ ํฌํŠธ ์˜คํ”ˆ, Nginx ์‹คํ–‰ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.