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

Deploy

Sub Domain์— HTTPS ์ธ์ฆ๋ฐ›๊ธฐ

Sub Domain์— HTTPS ์ธ์ฆ ๋ฐ›๊ธฐ

๊ธฐ์กด ๋„๋ฉ”์ธ, ์„œ๋ธŒ ๋„๋ฉ”์ธ(dev, prod)์— HTTPS ์ธ์ฆ์„ ๋ฐ›์•„๋ณด์ž.

Sub Domain

์„œ๋ฒ„ ๊ฐœ๋ฐœ์˜ ๋‹ˆ์ฆˆ์— ๋งž๊ฒŒ ๋„๋ฉ”์ธ๊ณผ ์„œ๋ธŒ ๋„๋ฉ”์ธ์ด ํ•„์š”ํ•˜๊ณ , ๋ชจ๋‘ HTTPS ์ธ์ฆ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ํ•˜์ž.

๊ธฐ์กด์˜ ๋„๋ฉ”์ธ -> nginx์˜ Default ํŽ˜์ด์ง€
prod ๋„๋ฉ”์ธ -> 5000๋ฒˆ ํฌํŠธ์˜ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ
dev ๋„๋ฉ”์ธ -> ๋‹จ์ˆœํ•œ html ํŒŒ์ผ

๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  HTTPS ์ธ์ฆ๊นŒ์ง€ ๋ฐ›์•„๋ณด์ž.

์ˆœ์„œ

๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ•œ ๋’ค, ์ฒ˜์Œ์—” certbot์œผ๋กœ HTTPS ์ธ์ฆ์„ ๋จผ์ € ๋ฐ›๊ณ  ์„œ๋ธŒ๋„๋ฉ”์ธ์„ nginx ์„ค์ •์—์„œ ๊ฑด๋“œ๋ฆฌ๋ ค๊ณ  ํ•˜๋‹ˆ ์˜๋„์น˜ ์•Š์€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋˜๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์•˜์—ˆ๋‹ค.

์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ•œ ๋’ค nginx๋กœ ๋„๋ฉ”์ธ, ์„œ๋ธŒ๋„๋ฉ”์ธ์„ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ทธ ๋’ค์— HTTPS ์ธ์ฆ์„ ๋ฐ›๋Š” ๊ฒƒ์ด ๋งž๋Š” ์ˆœ์„œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„๋ฉ”์ธ ๊ตฌ์ž…

๊ฐ€๋น„์•„์—์„œ ๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ•œ ๋’ค ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ด ์ค€๋‹ค.

๊ฐ€์žฅ ์œ„์˜ ๊ฐ’์€ ์„œ๋ฒ„์˜ ip ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด ์ค€๋‹ค.

nginx ์„ค์ •

ubunto์—์„œ nginx๋ฅผ ์„ค์น˜ํ•œ ๋’ค ์„ธํŒ…์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, /etc/nginx/sites-available/default์— nginx์˜ ์„ค์ • ๋‚ด์šฉ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‹ค์Œ์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์ž.

prod ๋„๋ฉ”์ธ

server {

        root /var/www/html/prod;

        server_name prod.yogiyo-backend.shop;

        location / {
                proxy_pass http://localhost:5000;
        }
}

prod๋Š” 5000๋ฒˆ ํฌํŠธ์™€ ์—ฐ๊ฒฐํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

dev ๋„๋ฉ”์ธ

server {

        root /var/www/html/dev;

        index index.html;

        server_name dev.yogiyo-backend.shop;

        location / {
                root /var/www/html/dev;
        }
}

dev ๋„๋ฉ”์ธ์—๋Š” ๊ฐ„๋‹จํ•œ html๋งŒ ๋„์šธ ๊ฒƒ์ด๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ด ์ฃผ์—ˆ๊ณ , ํ•ด๋‹น ๊ฒฝ๋กœ์— index.html์„ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋งŒ๋“ค์–ด์ฃผ์ž.

cetbot์œผ๋กœ HTTPS ์ธ์ฆ

์œ„์™€ ๊ฐ™์ด ์„œ๋ธŒ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ ์„ค์ •์ด ๋๋‚œ ์ƒํƒœ์—์„œ์—ฌ์•ผ HTTPS ์ธ์ฆ ํ›„์˜ ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด๋„ ์„œ๋ธŒ๋„๋ฉ”์ธ๊ณผ ํฌํŠธ๋ฅผ ์›ํ•˜๋Š” ๋Œ€๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋ฒ„๋กœ ์ ‘์†ํ•œ ๋’ค sudo su๋กœ ๊ถŒํ•œ์„ ๋ฐ›๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ €์žฅ์†Œ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์™€ certbot์„ ์„ค์น˜ํ•œ๋‹ค.

$ apt-get update

$ apt-get install software-properties-common

$ add-apt-repository ppa:certbot/certbot

$ apt-get update

$ apt-get install certbot python3-certbot-nginx

ํ˜„์žฌ ์ƒํ™ฉ์—์„  ์„ธ ๊ฐ€์ง€ ๋„๋ฉ”์ธ ๋ชจ๋‘ HTTPS๋ฅผ ์›ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

$ certbot --nginx -d yogiyo-backend.shop -d dev.yogiyo-backend.shop -d prod.yogiyo-backend.shop

์ฃผ์†Œ๊ฐ€ ์ด์ƒ ์—†๊ณ  ์œ„์˜ ์„ธํŒ…๋“ค๋„ ์ด์ƒ ์—†๋‹ค๋ฉด HTTPS ์ธ์ฆ์ด ์ง„ํ–‰๋œ๋‹ค.

์ค‘๊ฐ„์— HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ HTTPS๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์‹œ์ผœ์ฃผ๋ƒ๋Š” ๋ฌผ์Œ์—๋Š” YES๋ผ๊ณ  ๋Œ€๋‹ตํ•œ๋‹ค.

ํ™•์ธ

์„ธ ๊ฐ€์ง€ ์ฃผ์†Œ ๋ชจ๋‘ HTTPS๋กœ ์ ‘์†๋˜๋ฉฐ, ์„ค์ •ํ–ˆ๋˜ ์„œ๋กœ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋“ค์ด ์˜๋„๋Œ€๋กœ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.


nginx default ํŽ˜์ด์ง€


์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๊นŒ์ง€ ์„ธํŒ…ํ•œ ํŽ˜์ด์ง€๋ผ์„œ ์ •์ƒ์ ์œผ๋กœ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.


์˜๋„ํ–ˆ๋˜ ๊ฐ„๋‹จํ•œ html ํŒŒ์ผ์ด๋‹ค.