์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ์‚ฌ์šฉ๋ฐฉ๋ฒ•
2.1. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐฉ์‹2.2. ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•2.3. ์ด์ „ ๋ฐฉ๋ฒ•


๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

1. ๊ฐœ์š”[ํŽธ์ง‘]

Let's Encrypt๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌด๋ฃŒ๋กœ TLS ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์ฃผ๋Š” ๋น„์˜๋ฆฌ๊ธฐ๊ด€์ด๋‹ค. ๋ช‡ ๊ฐ€์ง€ TLS ์ธ์ฆ์„œ ์ข…๋ฅ˜ ์ค‘์—์„œ ์™„์ „ ์ž๋™ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ DV (Domain Validated, ๋„๋ฉ”์ธ ํ™•์ธ) ์ธ์ฆ์„œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰ํ•œ๋‹ค. ๋ชจ์งˆ๋ผ ์žฌ๋‹จ, ํŽ˜์ด์Šค๋ถ, ๊ตฌ๊ธ€ ๋“ฑ ๋งŽ์€ ์—…์ฒด๊ฐ€ ์Šคํฐ์„œ๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค. 2019-03-11 |๋ธ”๋กœ๊ทธ์— ์ด์ œ๋Š” ACME ํ”„๋กœํ† ์ฝœ์ด IETFํ‘œ์ค€(RFC 8555)์œผ๋กœ ๋“ฑ์žฌ๋˜์—ˆ๋‹ค๊ณ  ๋„์› ๋‹ค.

๋ฃจํŠธ ๋„๋ฉ”์ธ (๋„ค์ดํ‚ค๋“œ ๋„๋ฉ”์ธ), ํŠน์ • ์„œ๋ธŒ ๋„๋ฉ”์ธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํ•˜๋‚˜์˜ ์ธ์ฆ์„œ๋กœ ๋ชจ๋“  ์„œ๋ธŒ ๋„๋ฉ”์ธ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ *.example.com ํ˜•ํƒœ์˜ ์™€์ผ๋“œ์นด๋“œ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ๋„ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰ํ•˜๋ฏ€๋กœ ๊ทธ ํ™œ์šฉ์ด ํญ๋„“๋‹ค.

๋ฐœ๊ธ‰๋œ ์ธ์ฆ์„œ๋Š” ์œ ํšจ๊ธฐ๊ฐ„์ด 90์ผ์ด๋ฉฐ ๋งŒ๋ฃŒ 30์ผ ์ „๋ถ€ํ„ฐ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐฑ์‹  ๊ฐ€๋Šฅ ํšŸ์ˆ˜๋Š” ๋ฌด์ œํ•œ์ด๋‹ค.

์ด๋Ÿฐ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ์ธ์ฆ์„œ ๊ฐ€๊ฒฉ์ด 3๋งŒ์›์— ์ด๋ฅด๊ณ  ์™€์ผ๋“œ์นด๋“œ์˜ ๊ฒฝ์šฐ 15๋งŒ์›์— ์ด๋ฅด๋Ÿฌ 1๋…„๋™์•ˆ ์ œ๊ณต๋˜์ง€๋งŒ ๊ฒฐ์ œ๋Š” ์˜ˆ์‚ฐ๊ด€๋ฆฌํ•˜์—ฌ๊ฐ„ ์—”์ง€๋‹ˆ์–ด์—๊ฒ ๊ท€์ฐฎ๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด๋‹ค. ์ตœ์†Œํ•œ์˜ ์ด๋Ÿฐ ๋ถˆํŽธํ•œ ๋ถ€๋ถ„์„ ์ž๋™ํ™”ํ•ด์ค€๋‹ค.

2. ์‚ฌ์šฉ๋ฐฉ๋ฒ•[ํŽธ์ง‘]

์—ฌ์œ ๊ฐ€ ๋œ๋‹ค๋ฉด https://letsencrypt.org/getting-started/(์˜๋ฌธ) ์ฝ์–ด๋ณธ๋’ค์— ์ ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ƒ๋‹นํ•œ ์ปค์Šคํ…€์„ธํŒ…์„ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์„œ์˜ ํด๋ผ์ด์–ธํŠธ ์˜ต์…˜์„ ๋ณด๋Š”ํŽธ์ด ์ข‹๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋Ÿฐํƒ€์ž„ ํ”Œ๋ ›ํผ๊ณผ CLI LIB ํƒ€์ž…์ด ๋‚˜์™€์žˆ์œผ๋ฏ€๋กœ ์ƒˆ๋กœ ๊ตฌํ˜„ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” Python ๊ธฐ๋ฐ˜์ด๋‹ค.

2.1. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐฉ์‹[ํŽธ์ง‘]

Let's Encrypt๊ฐ€ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” ๋ฐฉ์‹์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ Let's Encrypt๊ฐ€ ์ถ”์ฒœํ•˜๋Š” ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ํ”„๋กœ๊ทธ๋žจ์ธ certbot์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • standalone
    standalone ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด certbot์— ๋‚ด์žฅ๋œ ์„ธํŒ…์„ ์‚ฌ์šฉํ•ด์„œ ๋„๋ฉ”์ธ๋งŒ์œผ๋กœ ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰ ๋˜๊ณ , ๊ฐฑ์‹  ์ ˆ์ฐจ๋„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค. *.example.com ํ˜•ํƒœ์˜ ์™€์ผ๋“œ์นด๋“œ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ๋Š” ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์—†๋‹ค.
  • webroot
    webroot ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์‹ ์˜ ์›น ์„œ๋ฒ„์—์„œ ์ž‘๋™์ค‘์ธ ์›น์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ , ๊ฐฑ์‹  ์ ˆ์ฐจ๋„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค. *.example.com ํ˜•ํƒœ์˜ ์™€์ผ๋“œ์นด๋“œ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ๋Š” ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์—†๋‹ค.
  • dns
    ๋„๋ฉ”์ธ์ด ์—ฐ๊ฒฐ๋œ DNS์— TXT ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ณผ์ •์— ์›น ์„œ๋ฒ„๊ฐ€ ํ•„์š” ์—†๊ณ  *.example.com ํ˜•ํƒœ์˜ ์™€์ผ๋“œ์นด๋“œ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋งค๋ฒˆ ์ธ์ฆ์„œ๋ฅผ ๊ฐฑ์‹ ํ•  ๋•Œ๋งˆ๋‹ค DNS์— TXT ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์™ธ๋ถ€์—์„œ TXT ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก DNS๊ฐ€ API๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐฑ์‹  ๊ณผ์ •์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. CloudFlare API๋ฅผ ํ†ตํ•œ ์˜ˆ์‹œ
    • API ๊ฐ€ ์—ฌ์˜์น˜ ์•Š์€ ๊ฒฝ์šฐ(์›น ํŒจ๋„๋ฐฉ์‹)์—๋Š” ํฌ๋กฌํ™•์žฅ์•ฑ์œผ๋กœ ๋งŒ๋“ค์–ด์“ฐ๊ฑฐ๋‚˜ ์ง์ ‘ ์›นํผ์„ ์ „์†กํ•˜์—ฌ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. #cloudflare(node) , https://github.com/publishlab/node-acme-client#acme-node ๋‹จ๋… ๋…ธ๋“œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™์‹œํ‚ค๊ธฐ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์“ด๋‹ค. auto๋ชจ๋“œ์—์„œ๋Š” dns-01 ์ŠคํŽ™์— ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์“ฐ์ง€ ๋ง์•„์•ผํ•œ๋‹ค.

2.2. ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•[ํŽธ์ง‘]

1. Certbot ํ™ˆํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ€์„œ ์ž์‹ ์˜ ์„œ๋ฒ„ ์‚ฌ์–‘์„ ์„ ํƒํ•˜๋ฉด ์„ค๋ช… ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.
2. ๋ฌธ์„œ๋ฅผ ์ฝ์œผ๋ฉด์„œ ํ„ฐ๋ฏธ๋„์— ๋ช…๋ น์–ด๋ฅผ ์นœ๋‹ค.
3. ๋ช‡๋ช‡ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•Œ์•„์„œ ์„ค์ •ํ•ด์ฃผ๊ณ , 3๊ฐœ์›” ๋งˆ๋‹ค ๊ฐฑ์‹ ๋„ ์ž๋™์œผ๋กœ ํ•ด์ค€๋‹ค.

๋˜๋Š” ์‚ฌ์ „์— ๋นŒํŠธ์ธ ๋œ ์›นํ˜ธ์ŠคํŒ…์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

2.3. ์ด์ „ ๋ฐฉ๋ฒ•[ํŽธ์ง‘]

ubuntu์—์„œ ํ…Œ์ŠคํŠธ ๋จ.
1. git clone https://github.com/certbot/certbot ์„ ์ž…๋ ฅํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ฐ›๋Š”๋‹ค.
2. ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ํด๋”์— ๋“ค์–ด๊ฐ„๋‹ค.
3. (apache๋‚˜ nginx์˜ virtual host๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ) ๊ฐ๊ฐ ./certbot-auto --apache -d (๋„๋ฉ”์ธ. -d ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ถ”๊ฐ€๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.) ./certbot-auto --nginx -d (๋„๋ฉ”์ธ)
(standalone) ./certbot-auto certonly --standalone --email (์ด๋ฉ”์ผ) -d (๋„๋ฉ”์ธ)
4. (standalone์œผ๋กœ ๋ฐœ๊ธ‰๋ฐ›์•˜์„์‹œ) apache๋‚˜ nginx ๋“ฑ์— ์—ฐ๊ฒฐํ•œ๋‹ค. ์ธ์ฆ์„œ์˜ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” /etc/letsencrypt/live/(๋„๋ฉ”์ธ ์ด๋ฆ„)/ ํด๋”์ด๋‹ค.