๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SSL ์ธ์ฆ์„œ์˜ ๋ฐœ๊ธ‰ ๋ฐ ์„ค์น˜ ๋ฐฉ๋ฒ•: ์•ˆ์ „ํ•œ ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ ๊ฐ€์ด๋“œ

mrmount 2024. 10. 18.

 

 

 

SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ ˆ์ฐจ: ์ฒซ๊ฑธ์Œ

SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ์ธ์ฆ ๊ธฐ๊ด€(CA) ์—์„œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ณ , ์›น ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. SSL ์ธ์ฆ์„œ๊ฐ€ ์ ์šฉ๋˜๋ฉด ์‚ฌ์ดํŠธ๋Š” HTTPS๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์‚ฌ์šฉ์ž ์‹ ๋ขฐ๋„๋„ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ ˆ์ฐจ ๋‹จ๊ณ„

  1. ์ธ์ฆ์„œ ์„œ๋ช… ์š”์ฒญ(CSR) ์ƒ์„ฑ
    - ์„œ๋ฒ„์—์„œ ๊ฐœ์ธ ํ‚ค(Private Key) ์™€ ํ•จ๊ป˜ CSR์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ ๊ธฐ๊ด€์— CSR ์ œ์ถœ
    - ์ธ์ฆ์„œ ์ข…๋ฅ˜(DV, OV, EV)์— ๋”ฐ๋ผ ๋„๋ฉ”์ธ ๋˜๋Š” ์กฐ์ง์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  3. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ๋‹ค์šด๋กœ๋“œ
    - CA์—์„œ ๊ฒ€์ฆ์ด ์™„๋ฃŒ๋˜๋ฉด SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„œ๋ฒ„์— ์ธ์ฆ์„œ ์„ค์น˜
    - 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 ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ ˆ์ฐจ ๋‹จ๊ณ„

  1. ์ธ์ฆ์„œ ์„œ๋ช… ์š”์ฒญ(CSR) ์ƒ์„ฑ
    - ์„œ๋ฒ„์—์„œ ๊ฐœ์ธ ํ‚ค(Private Key) ์™€ ํ•จ๊ป˜ CSR์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ ๊ธฐ๊ด€์— CSR ์ œ์ถœ
    - ์ธ์ฆ์„œ ์ข…๋ฅ˜(DV, OV, EV)์— ๋”ฐ๋ผ ๋„๋ฉ”์ธ ๋˜๋Š” ์กฐ์ง์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  3. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ๋‹ค์šด๋กœ๋“œ
    - CA์—์„œ ๊ฒ€์ฆ์ด ์™„๋ฃŒ๋˜๋ฉด SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„œ๋ฒ„์— ์ธ์ฆ์„œ ์„ค์น˜
    - 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

 

์ฝ”๋“œ ์„ค๋ช…:

  1. Certbot ์„ค์น˜ : Nginx์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ : 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>

 

์ฝ”๋“œ ์„ค๋ช…:

  1. SSLEngine on : HTTPS๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  2. SSLCertificateFile : ๋ฐœ๊ธ‰๋ฐ›์€ ์ธ์ฆ์„œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.
  3. SSLCertificateKeyFile : ๊ฐœ์ธ ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.
  4. 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;

    }

}

 

์ฝ”๋“œ ์„ค๋ช…:

  1. listen 443 ssl : HTTPS ํฌํŠธ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ssl_certificate : ๋ฐœ๊ธ‰๋œ ์ธ์ฆ์„œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.
  3. ssl_certificate_key : ๊ฐœ์ธ ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.
sudo systemctl reload nginx

์˜๋ฏธ: ์„ค์ • ๋ณ€๊ฒฝ ํ›„ Nginx ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

 


 

SSL ์ธ์ฆ์„œ ์‚ฌ์šฉ ํ˜„ํ™ฉ๊ณผ ํŠธ๋ Œ๋“œ

  • 2024๋…„ ๊ธฐ์ค€ , ์ „ ์„ธ๊ณ„ ์›น์‚ฌ์ดํŠธ์˜ ์•ฝ 80% ๊ฐ€ HTTPS๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ฐ”์ผ ํŠธ๋ž˜ํ”ฝ ์˜ 70% ์ด์ƒ์ด HTTPS ์‚ฌ์ดํŠธ๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
  • Let’s Encrypt์˜ ๋ฌด๋ฃŒ ์ธ์ฆ์„œ ์‚ฌ์šฉ ๋น„์œจ์€ 30% ์ด์ƒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

 


 

SSL ์„ค์น˜ ํ™•์ธ: SSL Labs ํ…Œ์ŠคํŠธ ๋„๊ตฌ ํ™œ์šฉ

 

SSL ์ธ์ฆ์„œ๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด SSL Labs ์™€ ๊ฐ™์€ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

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. ๋„ค , ๋™์ผํ•œ ๋„๋ฉ”์ธ์ด๋ผ๋ฉด ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๊ฐ™์€ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


๋Œ“๊ธ€