๐Ÿง Linux

Certbot SSL๋ฐœ๊ธ‰ ์ตœ๊ณ ์˜ ์ ์šฉ ๋ฐฉ๋ฒ• with Nginx

Dogfoot_JW 2025. 3. 4. 14:59

๊ฐœ์š”


certbot์„ ํ†ตํ•ด ๋ฐœ๊ธ‰ํ•œ *.mydomain.com ์ด๋ผ๋Š” ์™€์ผ๋“œ์นด๋“œ ์ฃผ์†Œ๊ฐ€ renew๋กœ ๊ฐฑ์‹ ์ด ์•ˆ ๋ผ์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ฒŒ ๋˜์—ˆ๋‹ค.
์™€์ผ๋“œ์นด๋“œ๋„ ์ž๋™ ๊ฐฑ์‹ ์ด ๊ฐ€๋Šฅํ•˜๊ธด ํ•œ๋ฐ ๊ณผ์ •์ด ๋„ˆ๋ฌด ๋ณต์žกํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ์—” ๊ฐ€์žฅ ๊น”๋”ํ•œ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.
์•„๋ž˜ ๋‚ด์šฉ์€ webํ˜ธ์ŠคํŒ…, ํ”„๋ก์‹œ ํ˜ธ์ŠคํŒ…์„ ์˜ˆ์‹œ๋กœ ๋‘๊ณ  ์žˆ๋‹ค.
๋˜ํ•œ ๊ฐ€๋น„์•„ ๋“ฑ ๋ณ„๋„๋กœ ๋„๋ฉ”์ธ ๊ณต๊ธ‰์—…์ฒด์—์„œ ACME ์ˆ˜๋™ ์ธ์ฆ์„ ํ†ตํ•˜์ง€ ์•Š์•„์„œ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ™˜๊ฒฝ


  • Ubuntu 22.04
  • certbot
  • nginx
  • code-server (์„ค์น˜๋˜์–ด์žˆ์Œ. 8080 ํฌํŠธ ์‚ฌ์šฉ)

 

์ง„ํ–‰


1. Certbot ์„ค์น˜ํ•˜๊ธฐ

Ubuntu/Debian

sudo apt update 
sudo apt install certbot
sudo apt install python3-certbot-nginx # Nginx์™€ acme์ฑŒ๋ฆฐ์ง€๋ฅผ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ
sudo apt install python3-certbot-apache # Apache์™€ acme์ฑŒ๋ฆฐ์ง€๋ฅผ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ

 

CentOS/RHEL

sudo yum install certbot 
sudo yum install python3-certbot-nginx # Nginx์™€ acme์ฑŒ๋ฆฐ์ง€๋ฅผ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ
sudo yum install python3-certbot-apache # Apache์™€ acme์ฑŒ๋ฆฐ์ง€๋ฅผ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ

์˜ˆ์ œ์—์„œ๋Š” apache๋„ ์กด์žฌํ•˜์ง€๋งŒ, ๋‚ด๊ฐ€ ์‹œ๋„ํ•˜๋Š” ๋ฐฉ์‹์€ nginx ์œ„์ฃผ๋กœ๋งŒ ์ž‘์„ฑํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— nginxํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋„๋ก ํ•œ๋‹ค.

 

2. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ํ•˜๊ธฐ

!!!! ํ•ด๋‹น ๋ฐฉ์‹์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์—” ๋ฌด์กฐ๊ฑด ๋„๋ฉ”์ธ ์ œ๊ณต ์—…์ฒด์— ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  1์ฐจ ๋„๋ฉ”์ธ mydomain.com, 2์ฐจ ๋„๋ฉ”์ธ second.mydomain.com ๋“ฑ์ด ๋ฏธ๋ฆฌ ์ถ”๊ฐ€๊ฐ€ ๋˜์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค!!!!

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด SSL ๋ฐœ๊ธ‰์„ ์‹œ๋„ํ•œ๋‹ค.

sudo certbot certonly --nginx --cert-name mydomain.com -d mydomain.com -d www.mydomain.com -d code.mydomain.com
# mydomain.com๊ณผ www.mydomain.com๊ณผ code.mydomain.com์— ๋Œ€ํ•œ ์ธ์ฆ์„œ๋ฅผ izvillain.com์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํ•ฉ์ณ์„œ ๋ฐœ๊ธ‰

 

์„ค๋ช…

  • sudo certbot: SSL์„ ๋ฐœ๊ธ‰ํ•˜๊ณ  ์ €์žฅํ•  ๋•Œ Certbot์ด ์‹œ์Šคํ…œ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ ‘๊ทผํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— sudo๊ถŒํ•œ์ด ํ•„์š”
  • certonly: ํ•ด๋‹น ์˜ต์…˜์ด ์—†๋‹ค๋ฉด nginx๋‚˜ apache ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด certbot์ด ์•Œ์•„์„œ ๋ง‰. confํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ฒŒ ๋œ๋‹ค.
  • --nginx: ์ธ์ฆ ๋ฐฉ์‹ ์ค‘ ์›น์„œ๋ฒ„์ธ์ฆ๋ฐฉ์‹์ธ nginx๋ฅผ ์„ ํƒ
  • --cert-name: ์ธ์ฆ์„œ๋“ค์„ ๋ฌถ์–ด๋‘˜ ๋Œ€ํ‘œ ์ด๋ฆ„ (๋‚˜์ค‘์— SSL ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํ•ด๋‹น์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋จ)
  • -d: ์–ด๋–ค ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•  ๊ฒƒ ์ธ์ง€ ์„ ํƒ

 

3. Nginx Https(80 TO 443) ์ž๋™ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ตฌ์„ฑ

์—ฌ๊ธฐ๊นŒ์ง€ ์ž˜ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด SSL์ธ์ฆ์„œ๋Š” /etc/letsencrypt/live/mydomain.com/ ์— ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค.
์ด์ œ ํ•  ์ผ์€ Nginx ์›น์„œ๋ฒ„๋กœ ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์„ https๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋„๋ก ์œ ๋„ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ, ๊ณต์šฉ http.conf ํŒŒ์ผ์„ ๋งŒ๋“ค๋„๋ก ํ•˜์ž

cd /etc/nginx/sites-available
sudo vi http.conf
#shared http
server{
    listen 80;
    return 308 https://$host:443$request_uri; #๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  80๋ฒˆ ํฌํŠธ ์š”์ฒญ์— ๋Œ€ํ•ด 443์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ
}

:wq ๋กœ ์ €์žฅ ๋ฐ ๋‚˜์˜ค๊ธฐ

 

๋งํฌ ์ƒ์„ฑ

sudo ln -s /etc/nginx/sites-available/http.conf /etc/nginx/sites-enabled/http.conf

 

nginx ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

sudo nginx -t

Success๊ฐ€ ์ž˜ ํ‘œ์‹œ๋œ๋‹ค๋ฉด ๋ฌธ์ œ์—†๋Š” ์ƒํƒœ๋‹ค.

 

4. SSL ์ ์šฉํ•˜๊ธฐ

์กฐ๊ธˆ๋งŒ ๋” ํ•˜๋ฉด ๊ธฐ์ดˆ์ž‘์—…์€ ์™„๋ฃŒ๋œ๋‹ค.
์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด SSL์„ ์ ์šฉํ•  ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ conf ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ๋„๋ก ํ•˜์ž.

sudo vi /etc/nginx/sites-available/mydomain.com.conf

 

์•„๋ž˜ .confํŒŒ์ผ ์—์„œ 1๋ฒˆ๊ณผ 2๋ฒˆ์€ ๊ฐ™์€ ์›น์‚ฌ์ดํŠธ๋กœ ๊ฐ€๊ฒŒ ํ•˜๋Š” ์˜ˆ์‹œ๊ณ ,
3๋ฒˆ์€ ๋ณ„๋„๋กœ ๋‚ด๋ถ€์—์„œ ํ˜ธ์ŠคํŒ… ํ•˜๋Š” ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๊ฒŒ ํ•˜๋Š” ์˜ˆ์‹œ๋‹ค.
๋‚˜์˜ ๊ฒฝ์šฐ๋Š” code-server๋ฅผ ๋กœ์ปฌํฌํŠธ 8080์œผ๋กœ ์—ด๊ณ ,

3๋ฒˆ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜์—ฌ ์™ธ๋ถ€์—์„œ๋Š” code.mydomain.com์œผ๋กœ๋งŒ ์œ ์ž… ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

 

#mydomain.com์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ˜ธ์ŠคํŒ…๋“ค

#1: ์›นํ˜ธ์ŠคํŠธ
server {
        listen 443 ssl;
        server_name mydomain.com; #1์ฐจ๋„๋ฉ”์ธ์œผ๋กœ  ๋“ค์–ด์˜ค๋Š” ์ฃผ์†Œ  ์บ์น˜

        ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; #
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

        location / {
                root /home/user/myweb/build/web; #ํ˜ธ์ŠคํŒ…ํ•  ์›น์‚ฌ์ดํŠธ ๊ฒฝ๋กœ
                index index.html; #์‹œ์ž‘ํ•  ์›น์‚ฌ์ดํŠธ ์ธ๋ฑ์Šค ํŒŒ์ผ
        }
}

#2: ์›นํ˜ธ์ŠคํŠธ www์— ๋Œ€ํ•ด ๊ฐ•์ œ๋กœ mydomain.com์œผ๋กœ ์ด๋™
server {
        listen 443 ssl;
        server_name www.mydomain.com; #2์ฐจ ๋„๋ฉ”์ธ www๋กœ ๋“ค์–ด์˜ค๋Š” ์ฃผ์†Œ  ์บ์น˜

        ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

        return 301 https://mydomain.com$request_uri; #์ด๋™์‹œํ‚ฌ  ์‹ค์ œ  ์ฃผ์†Œ
}


#3: ํ”„๋ก์‹œํ˜ธ์ŠคํŠธ (๋˜๋Š” ๊ฐ€์ƒํ˜ธ์ŠคํŠธ)
server {
        listen 443 ssl;
        server_name code.mydomain.com; #2์ฐจ ๋„๋ฉ”์ธ code๋กœ ๋“ค์–ด์˜ค๋Š” ์ฃผ์†Œ ์บ์น˜

        ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

        location / {
                proxy_pass http://127.0.0.1:8080; #๋กœ์ปฌ์—์„œ ํ˜ธ์ŠคํŒ…์ค‘์ธ ์‹ค์ œ ์ฃผ์†Œ
                proxy_set_header Host code.mydomain.com; #๋ฐ˜๋“œ์‹œ ์š”์ฒญ URL ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ ์–ด์•ผํ•จ (์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด ๋Œ€๋ถ€๋ถ„ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ,  ํฌํŠธ๋„ ๋ถ™์—ฌ์„œ ์‹œ๋„ํ•ด๋ณด๊ธฐ)
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection upgrade;
                #proxy_set_header Accept-Encoding gzip;

        }
}

:wq ๋กœ ์ €์žฅ ๋ฐ ๋‚˜์˜ค๊ธฐ

 

ํ•„์š”ํ•˜๋‹ค๋ฉด server{} ํ•ญ๋ชฉ์„ ๋” ์ถ”๊ฐ€ํ•˜์—ฌ info.mydomain.com ๋˜๋Š” sample.mydomain.com ๊ฐ™์€ ๋‹ค์–‘ํ•œ 2์ฐจ ๋„๋ฉ”์ธ๋„ ํ˜ธ์ŠคํŒ… ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋งํฌ ์ƒ์„ฑ

sudo ln -s /etc/nginx/sites-available/mydomain.com.conf /etc/nginx/sites-enabled/mydomain.com.conf

๋งํฌ๋ฅผ ์ƒ์„ฑํ•œ ์ด์œ ๋Š” nginx ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์ธํ•ด sites-enabled ํด๋” ์•ˆ์— ์žˆ๋Š” .conf ํŒŒ์ผ๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‚˜์ค‘์— ํ•ด๋‹น ์‚ฌ์ดํŠธ๋ฅผ ์ž ์‹œ ์•ˆ ์“ฐ๋ ค๋ฉด mydomain.com.conf.bak ์œผ๋กœ ์ด๋ฆ„๋งŒ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

 

nginx ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

sudo nginx -t

Success ๊ฐ€ ์ž˜ ์ถœ๋ ฅ๋˜๋ฉด ๋ฌธ์ œ์—†์Œ.

 

Nginx ์„œ๋น„์Šค ์žฌ์‹œ์ž‘

sudo systemctl restart nginx 

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์œผ๋กœ ์ž˜ ์ด๋™์ด ๋˜๋Š”์ง€ ํ™•์ธ์ด ๋˜๋ฉด ๊ธฐ์ดˆ ๊ณต์‚ฌ๋Š” ๋ชจ๋‘ ๋์ด๋‹ค.

 

5. (์„ ํƒ์‚ฌํ•ญ) SSL ์ž๋™๊ฐฑ์‹  ๊ตฌ์„ฑ

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด certbot์œผ๋กœ ์ƒ์„ฑํ•œ ๋ชจ๋“  SSL๋ฅผ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

sudo certbot renew

 

๊ทผ๋ฐ 3๊ฐœ์›”๋งˆ๋‹ค ๊ฐฑ์‹ ํ•ด์ฃผ๋ ค๊ณ  ์‹ ๊ฒฝ์„ ์จ์•ผํ•œ๋‹ค๋Š”๊ฒŒ ์—ฌ๊ฐ„ ๊ท€์ฐฎ์€ ์ผ์ด ์•„๋‹ ์ˆ˜ ์—†๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์‹ฌํ”Œํ•œ ๋ฐฉ๋ฒ•์€ ๋ฆฌ๋ˆ…์Šค์˜ ์ž๋™ํ™” ๊ธฐ๋Šฅ์ธ crontab์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐฑ์‹ ๋˜๋„๋ก ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

์šฐ์„  ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— certbot๊ด€๋ จ๋œ ํด๋”์™€ ํŒŒ์ผ์„ ๋งŒ๋“ค๋„๋ก ํ•˜์ž

 

cd /home/user #๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ผญ ์ž์‹ ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ
mkdir certbot
cd certbot
vi renew.sh

 

์‰˜์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ

#!/bin/bash

LOG_FILE="/home/user/certbot/renew.log" #๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ผญ ์ž์‹ ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ

echo "[$(date)] Certbot ๊ฐฑ์‹  ์‹œ์ž‘" >> "$LOG_FILE"

certbot renew >> "$LOG_FILE" 2>&1

echo "[$(date)] Certbot ๊ฐฑ์‹  ์™„๋ฃŒ" >> "$LOG_FILE"

:wq ๋กœ ์ €์žฅ ๋ฐ ๋‚˜์˜ค๊ธฐ

 

๋ชจ๋“  ๊ทธ๋ฃน์— ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ/์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ

chmod 777 renew.sh

์—ฌ๊ธฐ๊นŒ์ง€ ๋˜์—ˆ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ

sudo ./renew.sh

์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž˜ ์‹คํ–‰๋˜๋Š”์ง€๋ž‘ ๋กœ๊ทธ๊ฐ€ ์ž˜ ๋‚จ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

ํฌ๋ก ํƒญ ์ถ”๊ฐ€

sudo crontab -e #๋ฐ˜๋“œ์‹œ sudo๋กœ ํ•ด์•ผ su๊ถŒํ•œ์œผ๋กœ๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ certbot renew ๊ฐ€ ์ •์ƒ์‹คํ–‰๋จ.
#3์‹œ๊ฐ„ ๋งˆ๋‹ค certbot renew
0 */3 * * * /home/user/certbot/renew.sh #๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ผญ ์ž์‹ ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ

์ด์ œ 3์‹œ๊ฐ„๋งˆ๋‹ค ์ž๋™์œผ๋กœ SSL์„ ๋ชจ๋‘ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

6. (์„ ํƒ์‚ฌํ•ญ) 2์ฐจ ๋„๋ฉ”์ธ ์ถ”๊ฐ€

ํ˜„์žฌ๊นŒ์ง€ ๋‚˜๋Š” mydomain.com, www.mydomain.com code.mydomain.com ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€์˜ SSL ์ธ์ฆ์„œ๋ฅผ mydomain.com์ด๋ผ๋Š” ๊ณณ์— ํ•ฉ์ณ์„œ ๋ฐœ๊ธ‰ํ–ˆ๋‹ค.
๋งŒ์•ฝ info.mydomain.com ์ด๋ผ๋Š” ์ฃผ์†Œ๋ฅผ ์“ฐ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ํ˜ธ์ŠคํŒ… ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

!!!! ํ•ด๋‹น ๋ฐฉ์‹์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์—” ๋ฌด์กฐ๊ฑด ๋„๋ฉ”์ธ ์ œ๊ณต ์—…์ฒด์— ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  1์ฐจ ๋„๋ฉ”์ธ mydomain.com, 2์ฐจ ๋„๋ฉ”์ธ second.mydomain.com ๋“ฑ์ด ๋ฏธ๋ฆฌ ์ถ”๊ฐ€๊ฐ€ ๋˜์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค!!!!

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด info.mydomain.com ์ธ์ฆ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ž.

sudo certbot certonly --nginx --cert-name mydomain.com -d mydomain.com -d www.mydomain.com -d info.mydomain.com

์ด๋ฒˆ์—” ์ฒ˜์Œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•  ๋•Œ๋ž‘์€ ๋‹ฌ๋ฆฌ

- - - - - - - - - - - - - - - - - - - - - - - - - - 
You are updating certificate izvillain.com to include new domain(s):
+ info.mydomain.com

You are also removing previously included domain(s):
(None)

Did you intend to make this change?
- - - - - - - - - - - - - - - - - - - - - - - - - -
(U)pdate certificate/(C)ancel: U

๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค

์ถ”๊ฐ€๋˜๋Š” ๋„๋ฉ”์ธ๊ณผ ์‚ญ์ œ๋  ๋„๋ฉ”์ธ ๋ชฉ๋ก์ธ๋ฐ ์‚ญ์ œ๋˜๋Š” ๊ฒŒ ์žˆ๋Š”์ง€ ๋ฐ˜๋“œ์‹œ!! ์ž˜ ํ™•์ธํ•ด๋ณด๊ณ  U๋ฅผ ์ž…๋ ฅ.

 

์ด๋ฒˆ์—๋Š” ํ•ด๋‹น 2์ฐจ ๋„๋ฉ”์ธ์„ ์‹ ๊ทœํ˜ธ์ŠคํŠธ์— ๋ฌผ๋ฆฌ๊ธฐ ์œ„ํ•ด nginx์˜ .confํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋„๋ก ํ•˜์ž

vi /etc/nginx/sites-enabled/mydomain.com.conf
... ๋์— ์ถ”๊ฐ€

#4: ์ถ”๊ฐ€ ์›นํ˜ธ์ŠคํŠธ
server {
        listen 443 ssl;
        server_name info.mydomain.com; #1์ฐจ๋„๋ฉ”์ธ์œผ๋กœ  ๋“ค์–ด์˜ค๋Š” ์ฃผ์†Œ  ์บ์น˜

        ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; #
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

        location / {
                root /home/user/infoweb/build/web; #ํ˜ธ์ŠคํŒ…ํ•  ์›น์‚ฌ์ดํŠธ ๊ฒฝ๋กœ
                index index.html; #์‹œ์ž‘ํ•  ์›น์‚ฌ์ดํŠธ ์ธ๋ฑ์Šค ํŒŒ์ผ
        }
}

:wq ๋กœ ์ €์žฅ ๋ฐ ๋‚˜์˜ค๊ธฐ

 

nginx ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

sudo nginx -t

Success๊ฐ€ ์ž˜ ํ‘œ์‹œ๋œ๋‹ค๋ฉด ๋ฌธ์ œ์—†๋Š” ์ƒํƒœ๋ฏ€๋กœ nginx ์„œ๋น„์Šค ์žฌ์‹œ์ž‘

sudo systemctl restart nginx

์ด์ œ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ์ฃผ์†Œ์ธ info.mydomain.com ์ด ์ž˜ ์ ‘์†๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

 

7. (์„ ํƒ์‚ฌํ•ญ) Certbot ์œ ์šฉํ•œ ๋ช…๋ น์–ด๋“ค

  • sudo certbot certificates: ํ˜„์žฌ certbot์„ ํ†ตํ•ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ์ธ์ฆ์„œ๋“ค์„ ํ‘œ์‹œํ•œ๋‹ค.
  • sudo certbot delete --cert-name mydomain.com: ํ•ด๋‹น ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ธ์ฆ์„œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  • sudo certbot renew: ๋ชจ๋“  SSL์ธ์ฆ์„œ ๊ฐฑ์‹ .