Let's Encrypt (๋ฌด๋ฃ SSL ์ธ์ฆ์) ์ค์น์ ํ์ฉ
3๊ฐ์ ์ , Mozilla์์ ์์๋ ๋ฌด๋ฃ SSL ์ธ์ฆ์ ๋ฐ๊ธ ํ๋ก์ ํธ๊ฐ ์์๋๋ฐ, ๊ทธ ํ๋ก์ ํธ์ ์ด๋ฆ์ Let's Encrypt๋ผ๊ณ ํ๋ ํ๋ก์ ํธ์์ต๋๋ค.
์ฌ์ค SSL์ ์ฌ์ฉํ HTTPS ๋ณด์ ํ๋กํ ์ฝ์ ๋ฑ์ฅ์ ํจํท ์ค๋ํ์ผ๋ก ๋์ดํฐ๊ฐ ์น ํ๊ฒฝ์ ํดํน์ผ๋ก๋ถํฐ ๋ฌด๋ ฅํ ์ํค๋ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๊ธฐ์ ์ ๋๋ค. ํ์ง๋ง ์ด SSL์ ๊ธฐ์ ํน์ฑ์ ์ 3์ ์๋ฒ์ ์ธ์ฆ์ ๋ฐ์์ผ ํ๋๋ฐ, ๊ทธ ๋๋ฌธ์ SSL ์ธ์ฆ์ ๋น์ฉ์ด ๋ถ๊ณผ๋์ด ์ฃผ๋ณ ์ฌ์ดํธ๋ค์ด ๋น์ฉ๋ฌธ์ ๋ก ์ ์ฉํ์ง ์๋ ์ฌ์ดํธ๋ค์ด ๋ง์ต๋๋ค.(ํนํ ๊ตญ๋ด๊ถ ์ฌ์ดํธ)
๊ทธ๋ฐ๋ฐ, ์ด๋ฅผ ๋ฌด๋ฃํ ์ํค๋ ํ๋ก์ ํธ๊ฐ ๋ฐ๋ก Let's Encrypt์ธ๋ฐ, ํ์ฌ ๊ณต๊ฐ ๋ฒ ํ ์๋น์ค๊ฐ ์งํ ์ค์ ์์ผ๋ฉฐ Python์ ์ค์นํ ์ ์๋ ์ด์์ฒด์ ๋ผ๋ฉด ์ด๋์๋ ์ง ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํ์ฌ๋ mozilla ๋ฟ๋ง ์๋๋ผ Google, Facebook๊ณผ ๊ฐ์ ์ธ๊ณ ๋ํ ๊ธฐ์
๋ค๋ ์ด ํ๋ก์ ํธ์ ๊ต์ฅํ ์คํฐ์๋ก ์ง์ํ๊ณ ์์ต๋๋ค.
Let's Encrypt ์ค์น
Let's Encrypt ์ค์น๋ฅผ ์ํด์๋ ์๋์ ์ค๋น๋ฌผ์ด ํ์ํฉ๋๋ค.
- git
- python (2.7 ๊ถ์ฅ)
Python์ 3.0์ด์ด๋ ์๊ด์์ง๋ง ํํ์ด์ง์์๋ 2.7์ ๊ถ์ฅํ๊ณ ์๋ค. ๊ฐ๋ฐ ํ๊ฒฝ๋ 2.7์์ ํ ๋ฏํ์ต๋๋ค.
๋จผ์ git๊ณผ Python์ ์ค์นํฉ๋๋ค.
(์ค์น๊ฐ ๋ ์ฌ๋์ ์ด ๊ณผ์ ์ ์๋ต...)
Debian Linux
$ sudo apt-get install git python2.7
(# apt-get install git python2.7)
RedHat Linux (CentOS)
$ sudo yum install git python2.7
(# yum install git python2.7)
git๊ณผ python2.7 ์ค์น๊ฐ ๋๋ฌ์ผ๋ฉด git์ ์ด์ฉํด์ letsencrypt ํจํค์ง๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค.
๊ทธ ์ ์, ์ ํํด์ผํ ๊ฒ์ด ์์ต๋๋ค.
์ผ๋จ ๋ณธ ํฌ์คํธ์์๋ letsencrypt๋ฅผ ์ ์ ์๋ฒ์ ๋ง์ถฐ ํ ๋๋ ํ ๋ฆฌ ๋ด์ ์ค์นํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์ ๊ถ๊ณ ๋๋ฆด ๊ฒ์ letsencrypt๋ฅผ ์ฌ์ฉํด์ SSL ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ๋, ์ฌ๋ฌ๊ฐ์ง ๊ถํ์ ์ ์ฝ์ ๋ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฐ๋์ "๊ด๋ฆฌ์" ๊ถํ(root)์ ๊ฐ์ง๊ณ ์๋ ์ฌ์ฉ์์ ๋๋ ํ ๋ฆฌ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.
๋ํ์ ์ผ๋ก /root ๋๋ ํ ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋ฌด๋ํฉ๋๋ค. ํ์ง๋ง ๊ฐํน ์ฐ๋ถํฌ ๋ฆฌ๋ ์ค ์๋ฒ๋ฅผ ์ฌ์ฉํ๊ณ ๊ณ์ ๊ด๋ฆฌ์ ๋ถ๋ค์ด sudo ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ด๋ฆฌ์๊ฐ root ๊ณ์ ์ด ์๋ ๋ค๋ฅธ ๊ณ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฐํน ์์ต๋๋ค. (ํ์๋ ๊ทธ๋ ๊ฒ ์ฌ์ฉํฉ๋๋ค.) ์ด๋ฐ ๊ฒฝ์ฐ, sudo ๊ถํ์ ๊ฐ์ง๊ณ ์๋ ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ ๋ฃ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
$ git clone https://github.com/letsencrypt/letsencrypt
# git clone https://github.com/letsencrypt/letsencrypt
์ ๋นํ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ ํ๊ณ ๋ ํ, ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์. ์๋ชป๋ ๋๋ ํ ๋ฆฌ ์ ์ ์ผ๋ก ์ธํ์ฌ ์ธ์ฆ์ ๋ฐ๊ธ์ด ์ ๋๋ก ๋์ง ์์ ์ ์์์ ๊ผญ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
$ cd letsencrypt/
$ ./letsencrypt-auto
# cd letsencrypt/
# ./letsencrypt-auto
cd ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ letsencrypt ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ํ, Python Script ์ฝ๋๋ฅผ ์คํํด์ค๋๋ค..
์คํํ ๋, root ์ฌ์ฉ์์ธ ๊ฒฝ์ฐ, ๋ฐ๋ก ์งํ๋๊ณ , sudo ๋ฅผ ์ฌ์ฉํ๋ฉด, ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฌป์ต๋๋ค.
์ ํ๋ฉด์ ์ ๊ฐ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ sudo ๊ณ์ ์ผ ๊ฒฝ์ฐ์ ํ๋ฉด์ ๋๋ค. ๋ํ ์ด ์คํฌ๋ฆฝํธ๋ $HOME(ํ ๋๋ ํ ๋ฆฌ ๋ณ์)๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ sudo -s๋ฅผ ์ฌ์ฉํด์ root๋ก ๊ณ์ ์ด ์ ํ๋์๋ค ํ๋๋ผ๋ /root๋ฅผ ๊ฐ๋ฆฌํค์ง ์์์ ์ ์ํด์ผ ํฉ๋๋ค.
์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ์ ํ์ฌ ๊ตฌ๋ ์ค์ธ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ์์งํ๋ค๋ฉด ์ ํ๋ฉด์ฒ๋ผ ์ฌ์ฉํ๊ณ ์๋ ๋๋ฉ์ธ์ ๋ฆฌ์คํธ๋ก ๋ฟ๋ ค์ค๋๋ค. ๋ฟ๋ ค์ง ๋๋ฉ์ธ ์ค์์ ์ํ๋ ๋๋ฉ์ธ์ Space Bar๋ฅผ ๋๋ฅด๊ณ OK๋ฅผ ํด๋ฆญํ๋ฉด SSL ์ธ์ฆ์ ๋ฐ๊ธ๊ณผ ํจ๊ป ์๋์ผ๋ก ํด๋น ๋๋ฉ์ธ์ HTTPS ํ๋กํ ์ฝ์ ์ ์ฉ์์ผ์ค๋๋ค.
์ฌ๊ธฐ์ ํญ๋ชฉ์ด ๋ ๋ถ๋ฅ๋ก ๋๋๊ฒ ๋๋๋ฐ, EASY์ ๊ฒฝ์ฐ, ํ์ด์ง ํ๋๋ง HTTPS๋ก ์ํธํ ํ์ง๋ง Secure์ ๊ฒฝ์ฐ, ํ์ด์ง ์ ํํ๋ ์์ ๋ชจ๋๋ฅผ ์ํธํ ์ํจ๋ค๋ ์ ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ ์ฉ์ด ์๋ฃ๋๋ฉด, ์ ํ๋ฉด์ด ๋ํ๋๊ฒ ๋ฉ๋๋ค.
Let's Encrypt ํ์ฉ
์ ์ฉ์ ๋์๋๋ฐ, ์ด๋ป๊ฒ ์ ์ฉ๋์๋์ง ๊ถ๊ธํ์ ๋ถ๋ค์ ์ํด์ ์กฐ๊ธ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
์ผ๋จ ์ผ๋ฐ HTTP๋ก ์ค์ ํ๋ ํ์ผ์ด first.xyz.neonkid.conf ํ์ผ์ด๊ณ , LetsEncrypt-auto๊ฐ ์๋์ผ๋ก SSL์ ์ ์ฉ์์ผ์ค ํ์ผ์ ๋ค์ le-ssl์ด ๋ถ์ด ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์๋ first.xyz.neonkid.conf ํ์ผ์ ์์ ๋ ์ค์ด ์ถ๊ฐ๋์ด ์์ต๋๋ค. ์์ ๋ ์ค์ ํด๋ผ์ด์ธํธ๊ฐ 80๋ฒ ํฌํธ๋ก ์ ์ํ์ ๋, ์๋์ผ๋ก HTTPS ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋๋ก Redirecting ํ๋ ์์ ์ ํด์ฃผ๋๋ก ํฉ๋๋ค.
first.xyz.neonkid-le-ssl.conf ํ์ผ์๋ ๊ธฐ๋ณธ ์ค์ ๊ฐ๊ณผ ๋์์ ์ 4์ค์ด ์ถ๊ฐ๋ฉ๋๋ค. ์ 4์ค์ ์๋ฒ์ ๊ณต๊ฐํค์ ๊ฐ์ธํค๊ฐ ์์ฑ๋๊ณ , ์ฌ์ฉ๋๋ ๊ฒฝ๋ก์ ๋๋ค. ์ฌ์ค letsencrypt ์ค์น ๊ฒฝ๋ก/live์ ์ ์ฅ๋๋ฏ๋ก ๋ฐ๊ธ ์ดํ ์ ๊ฒฝ๋ก๋ฅผ ์๋์ผ๋ก ์ง์ ํด์ฃผ๊ณ , ์ค์ ๊ฐ์ include ์์ผ์ฃผ๋ฉด SSL์ด ์ ์ฉ๋๋ ์ ์ ๋๋ค.
๋ฐ๊ธ๋ ํค์ ์ ํจ๊ธฐ๊ฐ์ 3๊ฐ์์ผ๋ก, 3๊ฐ์์ด ์ง๋๋ฉด ์๋ ๊ฐฑ์ ์ด ๋์ง ์๊ณ , ์์๋ก ๊ฐฑ์ ์ ํด์ผ ํฉ๋๋ค.
์์ ๊ฐ์ ํ์ฉ๋ฐฉ๋ฒ์ ์ ์ฉํด๋ณด๋ฉด, SSL ์ธ์ฆ์๋ฅผ ์ญ์ /์ ์ฉํ๋ ๋ฒ๋ ๊ฐ๋จํ๊ฒ ํ ์ ์์ต๋๋ค.
๋จผ์ , first.xyz.neonkid.conf ํ์ผ์ ์ ํ์๋ ์์ ๋ ์ค๋ง์ ์ง์์ฃผ๊ณ , ์ ์ฅํฉ๋๋ค.
$ sudo vim first.xyz.neonkid.conf
# vim first.xyz.neonkid.conf
๋ ๋ฒ์งธ๋ก, first.xyz.neonkid-le-ssl.conf ํ์ผ์ ์ญ์ ํฉ๋๋ค.
$ sudo rm -rf first.xyz.neonkid-le-ssl.conf
# rm -rf first.xyz.neonkid-le-ssl.conf
โป sites-enabled/ ๋ด์ ์๋ first.xyz.neonkid-le-ssl.conf๋ ์ญ์ ํ์ ์ผ ํฉ๋๋ค.
$ sudo service apache2 reload
# service apache2 reload
Apache ์๋ฒ๋ฅผ Reload ์์ผ์ค๋๋ค.
์ด ๋, ERROR๊ฐ ๋ฐ์ํ๋ค๋ฉด, sites-enabled/ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฐ๋์ ํ์ธ๋ฐ๋๋๋ค.
์ด ๊ฒ์ผ๋ก SSL ์ธ์ฆ์๋ฅผ ํด๋น ๋๋ฉ์ธ์์ ํด์ ํ๋ ๊ฒ์ ์ฑ๊ณตํ์์ต๋๋ค.
๋ค์ ์ ์ฉํ๋ ค๋ฉด ์ ์ญ์ ํ ํ์ผ๊ณผ ์ง์์ง ๋ ์ค์ ๋ณต๊ตฌํ์๊ณ , reload ํ์๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ๋ฐ๊ธ๋ SSL ์ธ์ฆ์๊ฐ ์ญ์ ๋ ๊ฒ์ ์๋๋๋ค.
์๊ตฌ์ ์ผ๋ก ํด๋น ๋๋ฉ์ธ์ ๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ์ง์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ์ญ์ ํ ๊ฒฝ์ฐ, ๋ค์ ํด๋น ์ธ์ฆ์๋ก SSL ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ ์ ์์์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
๋จผ์ , letsencrypt๊ฐ ์ค์น๋ ๊ฒฝ๋ก๋ก ์ด๋ํฉ๋๋ค (๊ธฐ๋ณธ: /etc/letsencrypt)
$ cd live/
$ sudo rm -rf "domain"
$ cd archive/
$ sudo rm -rf "domain"
$ cd renewal/
$ sudo rm -rf "domain.conf*"
# cd live/
# rm -rf "domain"
# cd archive/
# rm -rf "domain"
# cd renewal/
# rm -rf "domain.conf*"
์ญ์ ํด์ผํ ํ์ผ๊ณผ ํด๋๋ ์ด 3๊ฐ์ด๋ฉฐ, ์ด 3๊ฐ๊ฐ ๋ชจ๋ ์ญ์ ๋์ด์ผ ์๋ฒฝํ ์ธ์ฆ์์ ํจ๋ ฅ์ ์๊ฒ ๋๊ณ , ์ฐจํ ์๋ก์ด ์ธ์ฆ์๋ฅผ ์์ฑํ ๋, ์ค๋ฅ๋ฅผ ๋ฟ์ง ์์ผ๋ฏ๋ก ํ์คํ๊ฒ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
'Infrastructure > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Ubuntu 16.10 ๋ฒ์ ์์ nimf ์ ๋ ฅ๊ธฐ ์ค์น (0) | 2017.01.03 |
---|---|
UFW (The Uncomplicated Firewall, ์ฐ๋ถํฌ ๋ฆฌ๋ ์ค ๋ฐฉํ๋ฒฝ ๋ฐ๋ชฌ) ์ ํ์ฉ (0) | 2016.05.22 |
Openfire ์๋ฒ ๊ตฌ์ฑํ๊ธฐ (0) | 2015.11.27 |
Openfire (XMPP ์ฑํ ์๋ฒ) ๊ตฌ์ถํ๊ธฐ (0) | 2015.11.27 |
์ฐ๋ถํฌ์์ ์ถ์ฒํ๋ ๋ฏธ๋์ด ํ๋ ์ด์ด Bomi (0) | 2015.11.02 |