๋ถ๋ฅ:์ปดํจํฐ ๋ณด์
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
Let's Encrypt๋ ์ฌ์ฉ์์๊ฒ ๋ฌด๋ฃ๋ก TLS ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํด์ฃผ๋ ๋น์๋ฆฌ๊ธฐ๊ด์ด๋ค. ๋ช ๊ฐ์ง TLS ์ธ์ฆ์ ์ข
๋ฅ ์ค์์ ์์ ์๋ํ๊ฐ ๊ฐ๋ฅํ DV (Domain Validated, ๋๋ฉ์ธ ํ์ธ) ์ธ์ฆ์๋ฅผ ๋ฌด๋ฃ๋ก ๋ฐ๊ธํ๋ค. ๋ชจ์ง๋ผ ์ฌ๋จ, ํ์ด์ค๋ถ, ๊ตฌ๊ธ ๋ฑ ๋ง์ ์
์ฒด๊ฐ ์คํฐ์๋ก ๋ฑ๋ก๋์ด ์๋ค. 2019-03-11 |๋ธ๋ก๊ทธ์ ์ด์ ๋ ACME ํ๋กํ ์ฝ์ด IETFํ์ค(RFC 8555)์ผ๋ก ๋ฑ์ฌ๋์๋ค๊ณ ๋์ ๋ค.
๋ฃจํธ ๋๋ฉ์ธ (๋ค์ดํค๋ ๋๋ฉ์ธ), ํน์ ์๋ธ ๋๋ฉ์ธ ๋ฟ๋ง ์๋๋ผ, ํ๋์ ์ธ์ฆ์๋ก ๋ชจ๋ ์๋ธ ๋๋ฉ์ธ์ ์ฌ์ฉ ๊ฐ๋ฅํ *.example.com ํํ์ ์์ผ๋์นด๋ ์๋ธ ๋๋ฉ์ธ ์ธ์ฆ์๋ ๋ฌด๋ฃ๋ก ๋ฐ๊ธํ๋ฏ๋ก ๊ทธ ํ์ฉ์ด ํญ๋๋ค.
๋ฐ๊ธ๋ ์ธ์ฆ์๋ ์ ํจ๊ธฐ๊ฐ์ด 90์ผ์ด๋ฉฐ ๋ง๋ฃ 30์ผ ์ ๋ถํฐ ๊ฐฑ์ ํ ์ ์๋ค. ๊ฐฑ์ ๊ฐ๋ฅ ํ์๋ ๋ฌด์ ํ์ด๋ค.
์ด๋ฐ ์๋น์ค๊ฐ ํ์ํ ์ด์ ๋ ์ธ์ฆ์ ๊ฐ๊ฒฉ์ด 3๋ง์์ ์ด๋ฅด๊ณ ์์ผ๋์นด๋์ ๊ฒฝ์ฐ 15๋ง์์ ์ด๋ฅด๋ฌ 1๋ ๋์ ์ ๊ณต๋์ง๋ง ๊ฒฐ์ ๋์์ฐ๊ด๋ฆฌํ์ฌ๊ฐ ์์ง๋์ด์๊ฒ ๊ท์ฐฎ๊ณ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด๋ค. ์ต์ํ์ ์ด๋ฐ ๋ถํธํ ๋ถ๋ถ์ ์๋ํํด์ค๋ค.
๋ฃจํธ ๋๋ฉ์ธ (๋ค์ดํค๋ ๋๋ฉ์ธ), ํน์ ์๋ธ ๋๋ฉ์ธ ๋ฟ๋ง ์๋๋ผ, ํ๋์ ์ธ์ฆ์๋ก ๋ชจ๋ ์๋ธ ๋๋ฉ์ธ์ ์ฌ์ฉ ๊ฐ๋ฅํ *.example.com ํํ์ ์์ผ๋์นด๋ ์๋ธ ๋๋ฉ์ธ ์ธ์ฆ์๋ ๋ฌด๋ฃ๋ก ๋ฐ๊ธํ๋ฏ๋ก ๊ทธ ํ์ฉ์ด ํญ๋๋ค.
๋ฐ๊ธ๋ ์ธ์ฆ์๋ ์ ํจ๊ธฐ๊ฐ์ด 90์ผ์ด๋ฉฐ ๋ง๋ฃ 30์ผ ์ ๋ถํฐ ๊ฐฑ์ ํ ์ ์๋ค. ๊ฐฑ์ ๊ฐ๋ฅ ํ์๋ ๋ฌด์ ํ์ด๋ค.
์ด๋ฐ ์๋น์ค๊ฐ ํ์ํ ์ด์ ๋ ์ธ์ฆ์ ๊ฐ๊ฒฉ์ด 3๋ง์์ ์ด๋ฅด๊ณ ์์ผ๋์นด๋์ ๊ฒฝ์ฐ 15๋ง์์ ์ด๋ฅด๋ฌ 1๋ ๋์ ์ ๊ณต๋์ง๋ง ๊ฒฐ์ ๋
2. ์ฌ์ฉ๋ฐฉ๋ฒ[ํธ์ง]
์ฌ์ ๊ฐ ๋๋ค๋ฉด https://letsencrypt.org/getting-started/(์๋ฌธ) ์ฝ์ด๋ณธ๋ค์ ์ ์ฉํ๋ฉด ๋๋ค. ์๋นํ ์ปค์คํ
์ธํ
์ ์ํด์๋ ๋ฌธ์์ ํด๋ผ์ด์ธํธ ์ต์
์ ๋ณด๋ํธ์ด ์ข๋ค. ๋๋ถ๋ถ์ ๋ฐํ์ ํ๋ ํผ๊ณผ CLI LIB ํ์
์ด ๋์์์ผ๋ฏ๋ก ์๋ก ๊ตฌํ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๋ค.
ํด๋ผ์ด์ธํธ๋ Python ๊ธฐ๋ฐ์ด๋ค.
ํด๋ผ์ด์ธํธ๋ 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. ๋ช๋ช ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ฉด ์์์ ์ค์ ํด์ฃผ๊ณ , 3๊ฐ์ ๋ง๋ค ๊ฐฑ์ ๋ ์๋์ผ๋ก ํด์ค๋ค.
๋๋ ์ฌ์ ์ ๋นํธ์ธ ๋ ์นํธ์คํ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
2.3. ์ด์ ๋ฐฉ๋ฒ[ํธ์ง]
ubuntu์์ ํ
์คํธ ๋จ.
1. git clone https://github.com/certbot/certbot ์ ์ ๋ ฅํ์ฌ ํด๋ผ์ด์ธํธ๋ฅผ ๋ฐ๋๋ค.
2. ๋ค์ด๋ก๋ ๋ฐ์ ํด๋์ ๋ค์ด๊ฐ๋ค.
3. (apache๋ nginx์ virtual host๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ) ๊ฐ๊ฐ
(standalone)
4. (standalone์ผ๋ก ๋ฐ๊ธ๋ฐ์์์) apache๋ nginx ๋ฑ์ ์ฐ๊ฒฐํ๋ค. ์ธ์ฆ์์ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ /etc/letsencrypt/live/(๋๋ฉ์ธ ์ด๋ฆ)/ ํด๋์ด๋ค.
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/(๋๋ฉ์ธ ์ด๋ฆ)/ ํด๋์ด๋ค.