๐Ÿ› /Dev Tool

[vscode] Live Server Extension https ์—ฐ๊ฒฐํ•˜๊ธฐ w/openssl

ํ•œ๋‚˜ 2021. 3. 16. 17:16

์‹œ์ž‘ํ•˜๋ฉฐ

PWA ์—ฐ์Šต์„ ์œ„ํ•ด์„œ ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค.

 

192, 512px ์‚ฌ์ด์ฆˆ์˜ ๋‘ ๋กœ๊ณ ์™€ src ํด๋”์—๋Š” index.html, index.js, master.css, manifest.json ์ด๋ ‡๊ฒŒ ํŒŒ์ผ์„ ๋‘๊ณ  ์žˆ๋‹ค. lighthouse๋ฅผ ํ†ตํ•ด pwa ๋ฆฌํฌํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ https ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ, Live Server ์„ค์ •์„ ์†๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. 

๋ฌธ์ œ ์ƒํ™ฉ

Live Server extension์— ๋“ค์–ด๊ฐ€ ์„ค๋ช…์„ ๋ณด๋‹ˆ ๋‹คํ–‰ํžˆ https๋ฅผ ์ง€์›ํ•œ๋‹ค.

๊ณต์šฉ ์‚ฌ์ดํŠธ๊ฐ€ ์•„๋‹Œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•จ์ด๋‹ˆ ์ž์ฒด ์„œ๋ช…์„ ํ†ตํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ Open SSL์„ ์ด์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. Open SSL์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์— ์“ฐ์ด๋Š” ๋‘ ํ”„๋กœํ† ์ฝœ TLS, SSL์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ฒ„์ „์ด๋ฉฐ, ์ด ๋งํฌ์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

OpenSSL ๋‹ค์šด๋กœ๋“œ

๋‹ค์šด ๋ฐ›๊ธฐ ์ „ openssl์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด cmd ์ฐฝ์—์„œ ์œ„์ฒ˜๋Ÿผ ๋œฌ๋‹ค๋ฉด ๋ณ„๋„์˜ ๋‹ค์šด๋กœ๋“œ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋‹ค์šด์ด ์™„๋ฃŒ๋๋‹ค๋ฉด ์œ„ ๋ช…๋ น์–ด๋กœ ์ œ๋Œ€๋กœ ๋‹ค์šด ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด๋ณธ๋‹ค. 

OpenSSL ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

OpenSSL ํŒŒ์ผ ๊ตฌ์„ฑ

์••์ถ• ํ•ด์ œ ํ›„ ์ด๋Ÿฐ ํŒŒ์ผ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ง€์ •์„ ํ†ตํ•ด ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด์ž. ๋‚ด PC -> ์†์„ฑ -> ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • ๋ณด๊ธฐ -> ๊ณ ๊ธ‰ ํƒญ ํด๋ฆญ -> ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํด๋ฆญ

์‹œ์Šคํ…œ ๋ณ€์ˆ˜ -> Path ํด๋ฆญ -> ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ ํด๋ฆญ ํ›„ OpenSSL ์••์ถ• ํ•ด์ œํ•œ ํด๋”์˜ bin ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.

์ด๋ฒˆ์—๋Š” ์‹œ์Šคํ…œ ๋ณ€์ˆ˜ -> ์ƒˆ๋กœ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ด bin ํด๋” ๋‚ด openssl.cnf ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ ์ž…๋ ฅํ•ด์ค€๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ํ‚ค ๋ฐœ๊ธ‰์„ ์œ„ํ•ด ๋‹ค์‹œ CMD ์ฐฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

์ธ์ฆํ‚ค ๋ฐœ๊ธ‰

CMD ์ฐฝ์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

openssl genrsa -aes256 -out localhost.key 2048

generating RSA์˜ ์ค„์ž„๋ง์ธ ๋ช…๋ น์–ด genrsa๋ฅผ ํ†ตํ•ด ์–‘๋ฐฉํ–ฅ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ (๊ทธ๋ž˜์„œ SSL ์ธ์ฆ ๋“ฑ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ธ) AES-256 ๋ฐฉ์‹์˜ ์•”ํ˜ธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๋ช…๋ น์–ด์ด๊ณ , ํ•ด๋‹น output์„ localhost.key๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 2048์€ ์‚ฌ์ด์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, localhost.key๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

์ด๋•Œ ์•”ํ˜ธ๋ฅผ ๋ฌป๊ณ  ํ™•์ธํ•˜๋Š” ์ž‘์—…์„ ๊ฑฐ์นœ๋‹ค.

์•„์ง localhost.pem ํŒŒ์ผ์€ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ localhost.key๋งŒ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค. 

ํ‚ค ํŒŒ์ผ์ด ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋ฉด, ๋‹ค์Œ์€ pem ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. PEM ํŒŒ์ผ์€ ๋ณด์•ˆ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ธ์ฆํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ์„œ๋ฅผ Base64 ๋ฐฉ์‹์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ ํŒŒ์ผ์ด๋‹ค.

openssl req -days 3650 -new -newkey rsa:2048 -key localhost.key -x509 -out localhost.pem

# ์ดํ›„ ์งˆ๋ฌธ ๋ช‡ ๊ฐ€์ง€๊ฐ€ ๋‚˜์˜จ๋Š”๋ฐ, ๊ตณ์ด ์ ์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ถ€๋ถ„์€ ๊ณต๋ฐฑ์œผ๋กœ ๋‚จ๊ธฐ๊ณ  Enter ํ‚ค๋กœ ๋„˜์–ด๊ฐ€๋„ ๋œ๋‹ค. 

Enter pass phrase for [์•„๊นŒ ์ž…๋ ฅํ•œ localhost.key ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ํŒŒ์ผ ์ด๋ฆ„]:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:KR
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:Seoul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []: 

์ด์ œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ vscode ์„ค์ • ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

vscode

.vscode/settings.json

{
    "liveServer.settings.port" : 5501,
    "liveServer.settings.root": "/",
    "liveServer.settings.CustomBrowser": "chrome",
    "liveServer.settings.https": {
        "enable": true,
        "cert": "C:\\Users\\fnsk9\\https\\localhost.pem",
        "key": "C:\\Users\\fnsk9\\https\\localhost.key",
        "passphrase": "[์•„๊นŒ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ]"
    }
}

 

Tips : ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ธŒ๋ผ์šฐ์ € ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

  • Chrome
  • chrome:PrivateMode
  • firefox
  • firefox:PrivateMode
  • microsoft-edge
  • blisk

์—ฌ๊ธฐ๊นŒ์ง€ ๋งˆ์น˜๊ณ  ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹คํ–‰์‹œํ‚ค๋ฉด, 

 

ํ”„๋กœํ† ์ฝœ์ด https๋กœ ๋ฐ”๊ฟ” ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค. 

 

์ฐธ๊ณ 

www.youtube.com/watch?v=v4jgr0ppw8Q

oops.org/?t=lecture&sb=sslwrap&n=2

blog.naver.com/PostView.nhn?blogId=baekmg1988&logNo=221454486746