SSL ์ธ์ฆ์์ ๋ฐ๊ธ ๋ฐ ์ค์น ๋ฐฉ๋ฒ: ์์ ํ ์น์ฌ์ดํธ ๋ง๋ค๊ธฐ ๊ฐ์ด๋
SSL ์ธ์ฆ์ ๋ฐ๊ธ ์ ์ฐจ: ์ฒซ๊ฑธ์
SSL ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ธ์ฆ ๊ธฐ๊ด(CA) ์์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ณ , ์น ์๋ฒ์ ์ค์นํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. SSL ์ธ์ฆ์๊ฐ ์ ์ฉ๋๋ฉด ์ฌ์ดํธ๋ HTTPS๋ฅผ ํตํด ๋ฐ์ดํฐ ์ํธํ ๊ฐ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ฌ์ฉ์ ์ ๋ขฐ๋๋ ๋์์ง๋๋ค.
SSL ์ธ์ฆ์ ๋ฐ๊ธ ์ ์ฐจ ๋จ๊ณ
- ์ธ์ฆ์ ์๋ช
์์ฒญ(CSR) ์์ฑ
- ์๋ฒ์์ ๊ฐ์ธ ํค(Private Key) ์ ํจ๊ป CSR์ ์์ฑํฉ๋๋ค. - ์ธ์ฆ ๊ธฐ๊ด์ CSR ์ ์ถ
- ์ธ์ฆ์ ์ข ๋ฅ(DV, OV, EV)์ ๋ฐ๋ผ ๋๋ฉ์ธ ๋๋ ์กฐ์ง์ ๊ฒ์ฆํฉ๋๋ค. - ์ธ์ฆ์ ๋ฐ๊ธ ๋ฐ ๋ค์ด๋ก๋
- CA์์ ๊ฒ์ฆ์ด ์๋ฃ๋๋ฉด SSL ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํฉ๋๋ค. - ์๋ฒ์ ์ธ์ฆ์ ์ค์น
- Apache ๋๋ Nginx์ ๊ฐ์ ์น ์๋ฒ์ SSL ์ธ์ฆ์๋ฅผ ์ค์นํฉ๋๋ค.
Let’s Encrypt๋ก ๋ฌด๋ฃ SSL ์ธ์ฆ์ ๋ฐ๊ธํ๊ธฐ
Let’s Encrypt ๋ ๋ฌด๋ฃ๋ก SSL ์ธ์ฆ์๋ฅผ ์ ๊ณตํ๋ ์ธ๊ธฐ ์๋ ์ธ์ฆ ๊ธฐ๊ด์
๋๋ค.
์๋ํ ๋๊ตฌ์ธ Certbot ์ ์ฌ์ฉํ๋ฉด ๋ช ๋ถ ์์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์์ต๋๋ค.
์์ : Certbot์ ์ฌ์ฉํ SSL ๋ฐ๊ธ ๋ฐ ์ค์น
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
SSL ์ธ์ฆ์ ๋ฐ๊ธ ์ ์ฐจ: ์ฒซ๊ฑธ์
SSL ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ธ์ฆ ๊ธฐ๊ด(CA) ์์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ๊ณ , ์น ์๋ฒ์ ์ค์นํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. SSL ์ธ์ฆ์๊ฐ ์ ์ฉ๋๋ฉด ์ฌ์ดํธ๋ HTTPS๋ฅผ ํตํด ๋ฐ์ดํฐ ์ํธํ ๊ฐ ์ด๋ฃจ์ด์ง๋ฉฐ, ์ฌ์ฉ์ ์ ๋ขฐ๋๋ ๋์์ง๋๋ค.
SSL ์ธ์ฆ์ ๋ฐ๊ธ ์ ์ฐจ ๋จ๊ณ
- ์ธ์ฆ์ ์๋ช
์์ฒญ(CSR) ์์ฑ
- ์๋ฒ์์ ๊ฐ์ธ ํค(Private Key) ์ ํจ๊ป CSR์ ์์ฑํฉ๋๋ค. - ์ธ์ฆ ๊ธฐ๊ด์ CSR ์ ์ถ
- ์ธ์ฆ์ ์ข ๋ฅ(DV, OV, EV)์ ๋ฐ๋ผ ๋๋ฉ์ธ ๋๋ ์กฐ์ง์ ๊ฒ์ฆํฉ๋๋ค. - ์ธ์ฆ์ ๋ฐ๊ธ ๋ฐ ๋ค์ด๋ก๋
- CA์์ ๊ฒ์ฆ์ด ์๋ฃ๋๋ฉด SSL ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํฉ๋๋ค. - ์๋ฒ์ ์ธ์ฆ์ ์ค์น
- Apache ๋๋ Nginx์ ๊ฐ์ ์น ์๋ฒ์ SSL ์ธ์ฆ์๋ฅผ ์ค์นํฉ๋๋ค.
Let’s Encrypt๋ก ๋ฌด๋ฃ SSL ์ธ์ฆ์ ๋ฐ๊ธํ๊ธฐ
Let’s Encrypt ๋ ๋ฌด๋ฃ๋ก SSL ์ธ์ฆ์๋ฅผ ์ ๊ณตํ๋ ์ธ๊ธฐ ์๋ ์ธ์ฆ ๊ธฐ๊ด์
๋๋ค.
์๋ํ ๋๊ตฌ์ธ Certbot ์ ์ฌ์ฉํ๋ฉด ๋ช ๋ถ ์์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์์ต๋๋ค.
์์ : Certbot์ ์ฌ์ฉํ SSL ๋ฐ๊ธ ๋ฐ ์ค์น
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
์ฝ๋ ์ค๋ช :
- Certbot ์ค์น : Nginx์ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
- ์ธ์ฆ์ ๋ฐ๊ธ :
example.com
๊ณผwww.example.com
์ ๋ํด ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
์คํ ๊ฒฐ๊ณผ:
- ์ฑ๊ณตํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Apache ์๋ฒ์ SSL ์ธ์ฆ์ ์ค์นํ๊ธฐ
Apache ์๋ฒ์ SSL ์ธ์ฆ์๋ฅผ ์ค์นํ๋ ค๋ฉด ๊ฐ์ ํธ์คํธ ํ์ผ ์ ์์ ํด์ผ ํฉ๋๋ค.
์์ : Apache์์ SSL ์ค์
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.crt
SSLCertificateKeyFile /etc/ssl/private/example.key
SSLCertificateChainFile /etc/ssl/certs/chain.pem
</VirtualHost>
์ฝ๋ ์ค๋ช :
- SSLEngine on : HTTPS๋ฅผ ํ์ฑํํฉ๋๋ค.
- SSLCertificateFile : ๋ฐ๊ธ๋ฐ์ ์ธ์ฆ์ ๊ฒฝ๋ก์ ๋๋ค.
- SSLCertificateKeyFile : ๊ฐ์ธ ํค ํ์ผ ๊ฒฝ๋ก์ ๋๋ค.
- SSLCertificateChainFile : ์ธ์ฆ์ ์ฒด์ธ ํ์ผ์ ๋๋ค.
sudo systemctl restart apache2
์๋ฏธ: ์ค์ ํ์ผ์ ์์ ํ ํ Apache ์๋ฒ๋ฅผ ์ฌ์์ํฉ๋๋ค.
Nginx ์๋ฒ์ SSL ์ธ์ฆ์ ์ค์นํ๊ธฐ
Nginx ์๋ฒ์ SSL ์ธ์ฆ์๋ฅผ ์ค์นํ๋ ๊ณผ์ ๋ ๊ฐ๋จํฉ๋๋ค. ๋ค์์ ์ค์ ์์ ์ ๋๋ค.
์์ : Nginx์์ SSL ์ค์
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:8080;
}
}
์ฝ๋ ์ค๋ช :
- listen 443 ssl : HTTPS ํฌํธ๋ก ์ค์ ํฉ๋๋ค.
- ssl_certificate : ๋ฐ๊ธ๋ ์ธ์ฆ์ ๊ฒฝ๋ก์ ๋๋ค.
- ssl_certificate_key : ๊ฐ์ธ ํค ํ์ผ ๊ฒฝ๋ก์ ๋๋ค.
sudo systemctl reload nginx
์๋ฏธ: ์ค์ ๋ณ๊ฒฝ ํ Nginx ์๋ฒ๋ฅผ ๋ค์ ๋ก๋ํฉ๋๋ค.
SSL ์ธ์ฆ์ ์ฌ์ฉ ํํฉ๊ณผ ํธ๋ ๋
- 2024๋ ๊ธฐ์ค , ์ ์ธ๊ณ ์น์ฌ์ดํธ์ ์ฝ 80% ๊ฐ HTTPS๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋ชจ๋ฐ์ผ ํธ๋ํฝ ์ 70% ์ด์์ด HTTPS ์ฌ์ดํธ๋ฅผ ์ ํธํฉ๋๋ค.
- Let’s Encrypt์ ๋ฌด๋ฃ ์ธ์ฆ์ ์ฌ์ฉ ๋น์จ์ 30% ์ด์ ์ฆ๊ฐํ์ต๋๋ค.
SSL ์ค์น ํ์ธ: SSL Labs ํ ์คํธ ๋๊ตฌ ํ์ฉ
SSL ์ธ์ฆ์๊ฐ ์ ๋๋ก ์ค์น๋์๋์ง ํ์ธํ๋ ค๋ฉด SSL Labs ์ ๊ฐ์ ํ
์คํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ธ์.
์ ์ ์ํ์ฌ ๋๋ฉ์ธ์ ์ ๋ ฅํ๋ฉด ์ธ์ฆ์ ์ํ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
FAQ
Q1. SSL ์ธ์ฆ์๋ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋์?
A1. ๋ค, Let’s Encrypt ์ ๊ฐ์ ๊ธฐ๊ด์์ ๋ฌด๋ฃ SSL ์ธ์ฆ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
Q2. Apache์ Nginx ์ค ์ด๋ค ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋์?
A2. ์น์ฌ์ดํธ ํธ๋ํฝ ๊ณผ ํ์ ๊ธฐ๋ฅ ์ ๋ฐ๋ผ ์ ํํ ์ ์์ผ๋ฉฐ, ๋ ์๋ฒ ๋ชจ๋ SSL์ ์ง์ํฉ๋๋ค.
Q3. ์ธ์ฆ์ ๊ฐฑ์ ์ ์ด๋ป๊ฒ ํ๋์?
A3. Certbot์ ์ฌ์ฉํ๋ฉด ์๋ ๊ฐฑ์ ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ค์ ๋ช
๋ น์ด๋ก ๊ฐฑ์ ํฉ๋๋ค:
sudo certbot renew
Q4. ์ธ์ฆ์ ์ค์น ํ HTTPS๋ก ์๋ ๋ฆฌ๋๋ ์
ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
A4. Nginx์์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํฉ๋๋ค:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
Q5. SSL ์ธ์ฆ์๋ฅผ ์ฌ๋ฌ ์๋ฒ์์ ์ฌ์ฉํ ์ ์๋์?
A5. ๋ค , ๋์ผํ ๋๋ฉ์ธ์ด๋ผ๋ฉด ์ฌ๋ฌ ์๋ฒ์ ๊ฐ์ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๊ธ