Post

AWS EC2 HTTPS

๐Ÿ’ก Things I learned

โœ”๏ธ Shell

์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค
์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ช…๋ น์„ ๋ฐ›์•„ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• 

โœ”๏ธ SSH

Secure SHell
์›๊ฒฉ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ
๐Ÿ‘๐Ÿป ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ๋†’์€ ๋ณด์•ˆ์„ ์ง€์›ํ•œ๋‹ค๋Š” ์žฅ์ 

์•”ํ˜ธํ™”๋ฅผ ํ•ด ์ค˜์„œ ๋ณด์•ˆ์ƒ ์•ˆ์ „ํ•˜๋‹ค๋Š” ์žฅ์ 
์ธ์ฆํ‚ค, ํ‚ค ํŽ˜์–ด(.pem)๊ฐ™์€ ๊ฒƒ๋“ค์ด ๋ฐ”๋กœ SSH๋ผ๋Š” ๋ณด์•ˆ ๋ฐฉ์‹์ด ์ ์šฉ๋œ ์„œ๋ฒ„์—์„œ ํ•„์š”ํ•œ ํŒŒ์ผ

๐Ÿ”‘ ์ž‘๋™ ์›๋ฆฌ: KEY

SSH ์ž‘๋™์›๋ฆฌ์˜ ๊ฐ€์žฅ ํ•ต์‹ฌ์€ ๋ฐ”๋กœ KEY


โœ”๏ธ ๋น„๋Œ€์นญํ‚ค ๋ฐฉ์‹ ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ์˜ ์ •์ฒด๋ฅผ ์ฆ๋ช…(์ธ์ฆ)ํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋Œ€์นญํ‚ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
๋น„๋Œ€์นญํ‚ค ํ‚ค ํŽ˜์–ด = ๊ณต๊ฐœ ํ‚ค(.pub) + ๊ฐœ์ธ ํ‚ค(.pem)
์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค ํŽ˜์–ด๋ฅผ ๋งŒ๋“ค์–ด ์„œ๋ฒ„์—๊ฒŒ ๊ณต๊ฐœํ‚ค๋ฅผ ์ฃผ๊ณ , ๊ฐœ์ธ ํ‚ค๋Š” ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋‹ค.
์„œ๋ฒ„๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ๋ฐ›์•„
ํ•œ ๊ฐ’(์‹œํ—˜์ง€)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‹œํ—˜์ง€๋ฅผ ๋ฐ›์•„ ์ž๊ธฐ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐœ์ธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์‹œ๋Ÿผ์ง€๋ฅผ ํ‘ผ๋‹ค.
ํ‚ค ํŽ˜์–ด๋Š” ํ•˜๋‚˜์˜ ์„ธํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๊ฐ€ ๊ฐ™์€ ํ‚คํŽ˜์–ด์•ผ์ง€๋งŒ ์ด ์‹œํ—˜์ง€๋ฅผ ์ถœ ์ˆ˜ ์žˆ๋‹ค.
์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ‘ผ ์‹œํ—˜์ง€๋ฅผ ์ฒ˜์Œ์— ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๊ฐ’๊ณผ ๋น„๊ตํ•˜๊ณ , ๋‘ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ์ ‘์† ํ—ˆ์šฉ!

โœ”๏ธ ๋Œ€์นญํ‚ค ๋ฐฉ์‹
์ด์ œ ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ์•˜์œผ๋‹ˆ ์ •๋ณด ์ฃผ๊ณ ๋ฐ›์Œ
์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ณผ์ •์—์„œ ์ •๋ณด๊ฐ€ ์ƒˆ์–ด๋‚˜๊ฐ€์ง€ ์•Š๊ฒŒ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”
์ด ๋–„ ์‚ฌ์šฉ๋˜๋Š” ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ๋ฐ”๋กœ ๋Œ€์นญํ‚ค ๋ฐฉ์‹
์„œ๋ฒ„์™€ ์‚ฌ์šฉ์ž ๋ชจ๋‘ ํ•œ ๊ฐœ์˜ ํ‚ค๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”

โœ”๏ธ EC2

Amazon Elastic Compute Cloud
AWS์—์„œ ์›๊ฒฉ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ(ํด๋ผ์šฐ๋“œ ์ปดํ“จํ„ฐ)
ํ›„๋ถˆ์ œ๋กœ ์‚ฌ์šฉํ•œ ๋งŒํผ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ธฐ์— Elastic
๋˜ ์›ํ•˜๋Š” ๋งŒํผ ์„ฑ๋Šฅ, ์šฉ๋Ÿ‰์„ ์ž์œ ๋กญ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด Elasticํ•˜๊ธฐ๋„ ํ•˜๋‹ค.

โœ”๏ธ AMI

Amazon Machine Image
master image for the creation of vertual servers(known as EC2)
machine images are like templates with OS(linux, ubuntu), region, system architecture(32 or 64bit) that determine the userโ€™s operating environment
EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” template

Screenshot 2024-06-13 at 12 01 15

โœ”๏ธ VPC

Amazon Virtual Private Cloud
๊ฐ€์ƒ ๋„คํŠธ์›Œํ‚น ํ™˜๊ฒฝ
VPC์— EC2, RDS ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
VPC๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์„œ VPC๋ณ„๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , VPC๋Š” ๋…๋ฆฝ์ฃˆ ๋„คํŠธ์›Œํฌ์ฒ˜๋Ÿผ ์ž‘๋™
๋‹ค๋ฅธ VPC์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์‚ฌ์šฉ

๐Ÿ’ก ์ฐธ๊ณ  https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098

โœ”๏ธ ์„œ๋ธŒ๋„ท

VPC์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„
VPC๋ฅผ ๋˜ ์ž˜๊ฒŒ ์ชผ๊ฐ ๋‹ค.
๊ทธ๋ž˜์„œ VPC๋ณด๋‹ค ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๊ฐ€ ๋” ๋†’๊ฒŒ ๋˜๊ณ , ์•„์ดํ”ผ ๋ฒˆํ˜ธ๋Š” ๋” ์ž‘๊ฒŒ ๋œ๋‹ค.
์„œ๋ธŒ๋„ท์„ ๋งŒ๋“œ๋Š” ์ด์œ ๋Š” ๋” ๋งŽ์€ ๋„คํŠธ์›Œํฌ ๋ง์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ.
์„œ๋ธŒ๋„ท๋ผ๋ฆฌ๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ํ†ต์‹ 

์ •๋ฆฌํ•˜์ž๋ฉด, AWS > VPC > ์„œ๋ธŒ๋„ท ์ˆœ์ด๋‹ค.
Screenshot 2024-06-13 at 12 26 53

โœ”๏ธ SSL์ธ์ฆ์„œ๋ž€?

Secure Sockets Layer
์„œ๋ฒ„์— ๋Œ€ํ•œ ์ธ์ฆ, ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ๊ธฐ๋ฐ˜ ์ธํ„ฐ๋„ท ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ
์‚ฌ์šฉ ํฌํŠธ: HTTPS์˜ ๊ฒฝ์šฐ HTTP๋ฅผ ์œ„ํ•œ SSL/TLS ๋ณด์•ˆ ํ„ฐ๋„ ํ˜•์„ฑ์„ ์œ„ํ•ด 443 ํฌํŠธ ์‚ฌ์šฉ


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

๊ทธ๋ž˜์„œ SSL์„ ์‚ฌ์šฉํ•˜๋ฉด, SSL์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ์›น์‚ฌ์ดํŠธ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
SSL์ธ์ฆ์„œ๋Š” ์‹ ๋ถ„์ฆ๊ฐ™์€ ์—ญํ• ์„ ํ•ด์„œ ์›น์‚ฌ์ดํŠธ ์ ‘์†์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.
SSL์ธ์ฆ์„œ์—๋Š” ์›น ์‚ฌ์ดํŠธ์˜ ๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์›น ์„œ๋ฒ„์—๋Š” ๊ฐœ์ธ ํ‚ค๊ฐ€ ์žˆ์–ด ๊ณต๊ฐœ ํ‚ค๋ฅผ ํ•ด๋…ํ•  ์ˆ˜ ์žˆ์Œ
CA๋Š” SSL์ธ์ฆ์„œ ๋ฐœ๊ธ‰์„ ๋‹ด๋‹นํ•œ๋‹ค.

SSL์ธ์ฆ์„œ ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ๊ธฐ์ˆ ์ด ํƒ‘์žฌ๋˜์–ด ์žˆ์Œ

  • ํ•˜๋‚˜์˜ ํ‚ค๋กœ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”๋ฅผ ํ•˜๋Š” ๋Œ€์นญ ์•”ํ˜ธํ™” ๋ฐฉ์‹
  • ํ•œ ์Œ์˜ ํ‚ค ํŽ˜์–ด๋กœ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”๋ฅผ ํ•˜๋Š” ๋ฐ”๋Œ€์นญ ์•”ํ˜ธํ™” ๋ฐฉ์‹
  • authentication ์‹ ๋ถ„ ํ™•์ธ
  • digital signature
  • CA(certificate Authority)

ํ•ธ๋“œ์…ฐ์ดํฌ

ํ†ต์‹ ์„ ํ•˜๋ ค๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ ๋ถ„์„ ํ™•์ธํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ฃผ๊ฑฐ๋‹ˆ ๋ฐ›๊ฑฐ๋‹ˆ ํ•˜๋Š” ๊ณผ์ •

๐Ÿ’ก ์ฐธ๊ณ  https://brunch.co.kr/@sangjinkang/38 https://aws-hyoh.tistory.com/39

โœ”๏ธ TLS

Transport Layer Security
SSL๋ณด๋‹ค ์—…๋ฐ์ดํŠธ ๋œ ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ

โœ”๏ธ TCP ํ”„๋กœํ† ์ฝœ

Transmission Control Protocol
์ธํ„ฐ๋„ท ์ฝ˜ํ…์ธ ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
๋‘ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ๊ตํ™˜ํ•˜๊ฒŒ ํ•ด ์คŒ
HTTP๋Š” TCP ํ”„๋กœํ† ์ฝœ์˜ ์ผ์ข…์ด๋‹ค.

โœ”๏ธ FTP ํ”„๋กœํ† ์ฝœ

File Trasnfer Protocol

โœ”๏ธ SFTP ํ”„๋กœํ† ์ฝœ

SSH ํŒŒ์ผ ์ „์†ก ํ”„๋กœํ† ์ฝœ
๋ณด์•ˆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ์ „์†ก ํ”„๋กœํ† ์ฝœ

Screenshot 2024-06-14 at 12 53 04

โœ”๏ธ HTTP ๐Ÿ†š HTTPS

HTTPS: Hypertext Transfer Over SSL
SSL์œ„์— HTTP ์ ์šฉ, ๋”ฐ๋ผ์„œ SSL์„ ์ ์šฉํ•œ ๋„๋ฉ”์ธ๋งŒ์ด https:// ์ฃผ์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

HTTP ํฌํŠธ๋ฒˆํ˜ธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 80๋ฒˆ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, HTTPS๋Š” 443์ด ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค.

โœ”๏ธ HTTP โ–ถ๏ธ HTTPS ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•

๐Ÿ› ๏ธ Letโ€™s Encrypt

๋ฌด๋ฃŒ๋กœ TLS/SSL์ธ์ฆ์„œ๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ค๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” CA(์ธ์ฆ ๊ธฐ๊ด€)
๋ฌด๋ฃŒ์˜ SSL์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์›น ์„œ๋ฒ„์—์„œ ์•”ํ˜ธํ™”๋œ HTTPS๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
Certbot๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
90์ผ๋™์•ˆ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋กœ ์ž๋™๊ฐฑ์‹  ๊ฐ€๋Šฅ

โœ”๏ธ Letโ€™s Encrypt SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐฉ๋ฒ•

โญ๏ธ Nginx

  • ์ธ์ฆ ๋ฐ ์„ค์น˜๋ฅผ ์œ„ํ•ด nginx ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ

โญ๏ธ standalone

  • ์›น ์„œ๋ฒ„ ๋™์ž‘์„ ๋ฉˆ์ถ”๊ณ  ์ด ์‚ฌ์ดํŠธ์˜ ๋„คํŠธ์›Œํ‚น์„ ํ†ตํ•ด ์‚ฌ์ดํŠธ ์œ ํšจ์„ฑ ํ™•์ธ ํ›„ SSL์ธ์ฆ์„œ ๋ฐœ๊ธ‰
  • 80ํฌํŠธ๋กœ ๊ฐ€์ƒ standalone ์›น์„œ๋ฒ„๋ฅผ ๋„์›Œ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰
  • ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅ
  • ์ž๋™๊ฐฑ์‹  ๊ฐ€๋Šฅ

โญ๏ธ webroot

  • ์‚ฌ์ดํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์ธ์ฆ์„œ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์—ฌ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰
  • ์„œ๋ฒ„ ์ค‘๋‹จ ์—†์ด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅ
  • ์ธ์ฆ ๋ช…๋ น์— ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ๋งŒ ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅ
  • ์ž๋™๊ฐฑ์‹  ๊ฐ€๋Šฅ

โญ๏ธ DNS

  • ๋„๋ฉ”์ธ์„ ์ฟผ๋ฆฌํ•ด ํ™•์ธ๋˜๋Š” TXT๋ ˆ์ฝ”๋“œ๋กœ ์‚ฌ์ดํŠธ ์œ ํšจ์„ฑ ํ™•์ธ
  • ์™€์ผ๋“œ ์นด๋“œ ๋ฐฉ์‹
  • ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž๊ฐ€ ๋„๋ฉ”์ธ DNS๋ฅผ ๊ด€๋ฆฌ, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • ์ธ์ฆ์„œ ๊ฐฑ์‹ ํ•  ๋•Œ๋งˆ๋‹ค DNS์—์„œ TXT๊ฐ’ ๋ณ€๊ฒฝ ํ•„์š”

โœ… ๊ฐ€๋น„์•„์—์„œ ๋„๋ฉ”์ธ ๊ตฌ๋งคํ•˜๊ธฐ

โœ”๏ธ ๊ตฌ๋งคํ•˜๊ธฐ

โœ… AWS Route 53

โœ”๏ธ ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ

  • ๋„๋ฉ”์ธ ์ด๋ฆ„: ๊ฐ€๋น„์•„์—์„œ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ ์ด๋ฆ„ ์ž…๋ ฅ

โœ”๏ธ ๋ ˆ์ฝ”๋“œ ์„ธํŠธ ์ƒ์„ฑ

  • EC2 IP์—ฐ๊ฒฐ ๊ฐ’: EC2 Public IP๊ฐ’ ์ž…๋ ฅ

โœ”๏ธ ๋„ค์ž„์„œ๋ฒ„ ์„ค์ •

๊ฐ€๋น„์•„์—์„œ ๋„ค์ž„์„œ๋ฒ„ ์„ค์ •ํ•ด์•ผ ํ•จ
NS์œ ํ˜•์˜ ๋ ˆ์ฝ”๋“œ 4๊ฐ€์ง€์˜ ๊ฐ’(ns-000)์„ ๋“ฑ๋กํ•œ๋‹ค.
. ์€ ์ƒ๋žตํ•˜๊ณ  ๋“ฑ๋ก

โœ… SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ Letโ€™s Encrypt

โœ”๏ธ SSH๋กœ EC2์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•ด certbot์„ค์น˜

์—…๋ฐ์ดํŠธ

1
2
3
sudo apt update
sudo apt upgrade
sudo add-apt-repository ppa:certbot/certbot

Screenshot 2024-06-11 at 13 33 09

โœ”๏ธ Certbot์˜ Nginx ํŒจํ‚ค์ง€ ์„ค์น˜

1
sudo apt install -y certbot python3-certbot-nginx

Screenshot 2024-06-11 at 13 34 02

โœ”๏ธ Nginx Configuration ์„ค์ • (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

server_name์„ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

1
sudo vim /etc/nginx/sites-available/default

Screenshot 2024-06-11 at 13 34 47

๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พผ ๋’ค ์ž˜ ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธ

1
sudo nginx -t

โœ”๏ธ Nginx reload (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

1
sudo systemctl reload nginx

โœ”๏ธ HTTPS์— ๋Œ€ํ•œ ๋ฐฉํ™”๋ฒฝ ํ—ˆ์šฉ ์„ค์ •

AWS EC2์ธ์Šคํ„ด์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฉํ™”๋ฒฝ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

1
sudo ufw status

Screenshot 2024-06-11 at 13 36 09

โœ”๏ธ SSL ์ธ์ฆ์„œ ๋ฐ›๊ธฐ

์›ํ•˜๋Š” ๋„๋ฉ”์ธ์„ ์ง€์ •ํ•ด์„œ Nginx ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ธ์ฆ์„œ ํš๋“

1
2
3
4
sudo certbot --nginx -d ๋„๋ฉ”์ธ
์ด๋ฉ”์ผ ์ž…๋ ฅ
## Let's Encrypt ์ด๋ฉ”์ผ์— ์ถ”๊ฐ€๋˜๊ณ  ์‹ถ์€์ง€ ์•„๋‹Œ์ง€ ์„ ํƒ
## ๊ธฐ์กด HTTP ์—ฐ๊ฒฐ ์š”์ฒญ์„ HTTPS๋กœ ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ค„ ๊ฒƒ์ธ์ง€ ์„ ํƒ

certbot: ์ธ์ฆ์„œ๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  ์„ค์น˜ํ•˜๋Š” ๋ช…๋ น์–ด
--nginx: ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์†Œ์œ ์ฃผ๊ฐ€ ์ž์‹ ์ž„์„ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์ด์šฉํ•  ํ”Œ๋Ÿฌ๊ทธ์ธ
๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๊ณ  ํ•จ(๋งŒ๋ฃŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด ๋ฉ”์ผ๋กœ ์ „์†กํ•ด ์คŒ)
์•ฝ๊ด€์— ๋Œ€ํ•œ ๋™์˜ (A)/(C) ๋ฅผ ๋ฌป๋Š”๋ฐ ๋™์˜์— ์„ ํƒํ•˜๋Š” (A)

Screenshot 2024-06-11 at 13 36 33

โœ”๏ธ key ์ž˜ ๋ฐœ๊ธ‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

4๊ฐœ์˜ .pem, 1๊ฐœ์˜ readme๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
์ด ํŒŒ์ผ๋“ค์€ /etc/letsencrypt/live/[๋„๋ฉ”์ธ์ฃผ์†Œ]์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์ด๋‹ค.

1
2
## ll /etc/letsencrypt/live/ ๋‚ด ๋„๋ฉ”์ธ
ls -al /etc/letsencrypt/live/drugstoreproject.shop

Screenshot 2024-06-13 at 21 20 00

โœ”๏ธ ๋„๋ฉ”์ธ ์„œ๋ฒ„ ํ…Œ์ŠคํŠธ

๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๊ณ  submit
https://www.ssllabs.com/ssltest/

Screenshot 2024-06-12 at 00 19 34 Screenshot 2024-06-12 at 00 21 10

โžก๏ธ Nginx ์„ค์ •์œผ๋กœ ๊ฐ€๊ธฐ

โœ”๏ธ Certbot ์ž๋™๊ฐฑ์‹ 

  • Letโ€™s Encrypt์˜ ์ธ์ฆ์„œ๋Š” 90์ผ๋™์•ˆ๋งŒ ์œ ํšจํ•ด์„œ 90์ผ๋งˆ๋‹ค ๊ฐฑ์‹ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์—์„œ /etc/cron.d ์— ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ์‹œ์ผœ์ฃผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์žˆ์—ˆ๋‹ค!
  • ๊ฐฑ์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š์œผ๋ฉด ์ž˜ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ
1
sudo certbot renew --dry-run

Screenshot 2024-06-11 at 13 36 43

โœ”๏ธ ์ด์ œ ๋ฐœ๊ธ‰์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฏ€๋กœ /etc/letsencrypt/live/๋„๋ฉ”์ธ ๊ฒฝ๋กœ์— fullchain.pem , privkey.pem ์ด ๋ฐœ๊ธ‰๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค. (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

  • ์ƒˆ๋กœ ํ„ฐ๋ฏธ๋„ ํƒญ ์—ด๊ณ 
  • root๊ณ„์ •์œผ๋กœ ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ์ด๋™ ๐Ÿ”ด ๋ฐ”๋กœ cd /etc/letsencrypt/live/๋„๋ฉ”์ธ์œผ๋กœ ์‹คํ–‰ํ•˜๋‹ˆ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค!
    ์ด์œ : /etc/ is usually restricted, needs elevated permissions.
    To get elevated permissions, use sudo
    However, cd with sudo might not work bc cd is a shell-built-in command.
    To solve, open a shell with sudo and then navigate.
1
2
sudo -s
cd /etc/letsencrypt/live/drugstoreproject.shop/

โœ”๏ธ pem์„ PKCS12ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

  • .pem์€ ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ ์ธ์‹์„ ๋ชปํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ PKCS12ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ณ€๊ฒฝํ•  ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ผญ ๊ธฐ์–ตํ•  ๊ฒƒ(๋‚˜์ค‘์— yamlํŒŒ์ผ์— ์„ค์ •ํ•จ)
  • ๊ฒฐ๊ณผ๋ฌผ: keystore.p12
  • ๋ณ€๊ฒฝ ํ›„ ๋‚˜๊ฐ€๋ ค๋ฉด exit์น˜๋ฉด ๋œ๋‹ค.
1
sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name ttp -CAfile chain.pem -caname root

Screenshot 2024-06-11 at 18 17 38 Screenshot 2024-06-11 at 18 20 29

โœ”๏ธ ๋ชจ๋“  HTTPS์„ค์ • ๋! Nginx ์„œ๋ฒ„ restart (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

1
sudo service nginx restart

โœ… FileZilla (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

FileZilla์—์„œ keystore.p12 ํŒŒ์ผ ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

โœ”๏ธ FileZilla์— ์ƒˆ๋กœ์šด ์‚ฌ์ดํŠธ ์ถ”๊ฐ€

  • FileZilla Client ์„ค์น˜

    ํ”„๋กœํ† ์ฝœ: SFTP
    ํ˜ธ์ŠคํŠธ: AWS EC2 ํผ๋ธ”๋ฆญ IPv4
    ์‚ฌ์šฉ์ž: ubuntu
    ๋กœ๊ทธ์˜จ ์œ ํ˜•: ํ‚ค ํŒŒ์ผ
    ํ‚ค ํŒŒ์ผ(pem์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ)

Screenshot 2024-06-11 at 19 27 45

๐Ÿ”ด FileZilla์—์„œ keystore.p12์ด ์žˆ๋Š” ๊ฒฝ๋กœ /etc/letsencrypt/live/๋„๋ฉ”์ธ๋กœ ๋“ค์–ด๊ฐ€๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๊ณ„์† ์‹คํŒจ

๊ถŒํ•œ์ด ์—†๋‹ค๊ณ  ๋–ด๋‹ค.
๊ฒฐ๊ตญ keystore.p12๋ฅผ home/ububtu๋กœ ์˜ฎ๊ฒจ ๊ฑฐ๊ธฐ์„œ ๋กœ์ปฌ๋กœ ๋ฐ›์•„์˜ด
๋กœ์ปฌ ์›ํ•˜๋Š” ์žฅ์†Œ์— ์ €์žฅ ํ›„ ์ดํ›„์— SpringBoot์— ์ถ”๊ฐ€
Screenshot 2024-06-11 at 19 22 46

โœ”๏ธ ์—ฌ๊ธฐ๊นŒ์ง€ ๊ณผ์ • ์ด์ •๋ฆฌ

Screenshot 2024-06-11 at 19 24 23

โœ… SpringBoot Setting (๐Ÿ”บ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

โœ”๏ธ Resources์— SSL์ธ์ฆ์„œ ํŒŒ์ผ ๋„ฃ๊ธฐ

Screenshot 2024-06-12 at 00 49 47

โœ”๏ธ yaml ํŒŒ์ผ์— ์„ค์ • ์ถ”๊ฐ€

1
2
3
4
5
server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-type: "PKCS12"
    key-store-password: ENC(i5PeoNKddffOFHGj/baHbHVAsek6cRQK) //PKCS12๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ

Screenshot 2024-06-12 at 00 50 25

๐Ÿ”ด ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ์ด ์•ˆ ๋จ

์—ฌ๊ธฐ๊นŒ์ง€ ๋”ฐ๋ผํ–ˆ์œผ๋‚˜ http://drugstoreproject.shop:8080/swagger-ui/index.html ์ณ๋„ ์Šค์›จ๊ฑฐ ํ™”๋ฉด์ด 404๋กœ ๋œธ

๐Ÿ”ต nginx config๋ฅผ ์ˆ˜์ •ํ•˜์˜€๋‹ค.

  1. Open Nginx Configuration
1
sudo nano /etc/nginx/sites-available/drugstoreproject.shop
  1. Update config

Screenshot 2024-06-13 at 01 10 20

  1. Check syntax error in Nginx Configuration
1
sudo nginx -t
  1. Reload nginx
1
sudo systemctl reload nginx

๊ทธ๋žฌ๋”๋‹ˆ ์Šค์›จ๊ฑฐ ํ™”๋ฉด์€ ์ž˜ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ์Œ!
image

๊ทธ๋Ÿฌ๋‚˜ ์•„์ง๋„ https://๋Š” ๋˜์ง€๋ฅผ ์•Š๋Š”๋‹คใ… ใ… 

๐Ÿ”ด https ํ•ด๊ฒฐ

https://๋กœ ๋„๋ฉ”์ธ์„ ์—ฐ๊ฒฐํ•˜๋ฉด ์ด๋Ÿฐ ํ™”๋ฉด์ด ๋œธ
image

๊ทธ๋ฆฌ๊ณ  https://drugstoreproject.shop:8080/swagger-ui/index.html๋Š” ERR_SSL_PROTOCOL_ERROR์ด ๋œฌ๋‹ค.

image

โœ… Nginx conf ์„ค์ •

โœ”๏ธ Nginx์˜ nginx.conf, sites-available, sites-enabled

  • /ets/nginx/nginx.conf
    Nginx ์„ค์ •์— ๊ด€ํ•œ ๋ธ”๋ก ์ž‘์„ฑ
    ์ด ํŒŒ์ผ์—์„œ sites-enabledํด๋”์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ includeํ•˜์—ฌ ๊ฐ€์ ธ์˜จ๋‹ค.

  • /ets/nginx/sites-available
    ๊ฐ€์ƒ ์„œ๋ฒ„ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์„ค์ • ํŒŒ๋”œ๋“ค์ด ์œ„์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ

  • /ets/nginx/sites-enabled
    sites-available์— ์žˆ๋Š” ๊ฐ€์ƒ ์„œ๋ฒ„ ํŒŒ์ผ๋“ค ์ค‘์—์„œ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์€ ํŒŒ์ผ์„ symbolic link๋กœ ์—ฐ๊ฒฐํ•œ ํด๋”
    ์ด ํด๋”์— ์œ„์น˜ํ•œ ๊ฐ€์ƒ์„œ๋ฒ„ ํ™˜๊ฒฝ ํŒŒ์ผ๋“ค์„ ์ฝ์–ด ์‹ค์ œ ์„œ๋ฒ„๋ฅผ ์„ธํŒ…ํ•จ!

๐Ÿ’ก ๊ฒฐ๋ก 

์šฐ๋ฆฌ๋Š” /ets/nginx/sites-available์•„๋ž˜ ์ƒˆ๋กœ์šด drugstoreproject.shop์ด๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ ,
ํด๋” sites-enabled์— ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด sites-enabled๊ฐ€ drugstoreproject.shop์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค!

๋งํฌ๋ฅผ ์—ฐ๊ฒฐํ•ด ์›๋ณธ ํŒŒ์ผ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋‚ด๋Š” ๋งํฌ
ํด๋” ๋ฐ”๋กœ๊ฐ€๊ธฐ ๊ฐ™์€ ๊ฐœ๋…
ํŠน์ • ํด๋”์— ๋งํฌ๋ฅผ ๊ฑธ์–ด ์›๋ณธํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์“ด๋‹ค.

โœ”๏ธ nginx.conf

nginx.conf์„ ์—ด์–ด๋ณด๋ฉด

1
2
cd /etc/nginx
vi nginx.conf

Screenshot 2024-06-13 at 23 21 50 ๊ฐ€์žฅ ์•„๋ž˜์— ์ด๋Ÿฐ ์„ค์ •์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

  1. /etc/nginx/conf.d ์•„๋ž˜์— ์žˆ๋Š” ๋ชจ๋“  .conf ํŒŒ์ผ๋“ค์„ inclueํ•œ๋‹ค.
  2. /etc/nginx/sites-enabled์˜ ๋ชจ๋“  ํŒŒ์ผ๋“ค์„ includeํ•œ๋‹ค.

โœ… Nginx ์„ค์ •

1๏ธโƒฃ sites-available ์„ค์ •(Create and configure a New Site Configuration)

1
sudo nano /etc/nginx/sites-available/drugstoreproject.shop

2๏ธโƒฃ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ ์ €์žฅ command + O ๋‚˜๊ฐ€๊ธฐ command + X

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
server {
    listen 80;
    server_name drugstoreproject.shop www.drugstoreproject.shop;
    return 301 https://drugstoreproject.shop$request_uri;
}

server {
    listen 443 ssl http2;
    server_name drugstoreproject.shop www.drugstoreproject.shop;

    ssl_certificate /etc/letsencrypt/live/drugstoreproject.shop/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/drugstoreproject.shop/privkey.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
   if ($host = drugstoreproject.shop) {
        return 301 https://$host$request_uri;
   }
   listen 80;
   server_name drugstoreproject.shop;
        return 404;
}

(1) 80ํฌํŠธ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ, ์ฆ‰ http๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ https๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ํ•œ๋‹ค.

(2) https://๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ์„œ๋น„์Šค ์ค‘์ธ ํฌํŠธ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.

  • proxy_pass: ํ”„๋ก์‹œ ์ฃผ์†Œ, ๋ฐฑ์—”๋“œ ์šด์˜ ์„œ๋ฒ„ ip
    • ๐Ÿ”ด ๋‘ ๋ฒˆ์งธ server ๋ธ”๋ก proxy_pass๋Š” http://localhost:8080; ์ด๋‹ค.
    • http โญ•๏ธ
    • https โŒ
    • 8080ํฌํŠธ์—์„œ๋Š” spring boot์•ฑ์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ
  • proxy_set_header Host $http_host; : HTTP request์˜ Host ํ—ค๋” ๊ฐ’, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์›๋ž˜ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ
  • X-Real-IP : ์‹ค์ œ ๋ฐฉ๋ฌธ์ž์˜ ์›๊ฒฉ IP์ฃผ์†Œ
  • X-Forwarded-For : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ”„๋ก์‹œ ์ฒ˜๋ฆฌํ•œ ๋ชจ๋“  ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชฉ๋ก
  • X-Forwarded-Proto : HTTP๊ตฌ์กฐ๋กœ http ๋˜๋Š” https๋ฅผ ์˜๋ฏธ

(3) ๋„๋ฉ”์ธ ์ด๋ฆ„์ด ๋‹ค๋ฅด๋ฉด 404์—๋Ÿฌ ์ฒ˜๋ฆฌ

3๏ธโƒฃ Enable the new site
create a symbolic linkํ•ด์„œ sites-enabled๋กœ ์—ฐ๊ฒฐ
์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  configํŒŒ์ผ์„ sites-enabled ๋””๋ ‰ํ† ๋ฆฌ์— ๋งํฌํ•ด์ค€๋‹ค.

1
sudo ln -s /etc/nginx/sites-available/drugstoreproject.shop /etc/nginx/sites-enabled/

์ž˜ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ๋ฉด

1
2
3
cd /etc/nginx/sites-enabled
ls -l

4๏ธโƒฃ default site๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ์•„๊นŒ sites-available/default๋Š” ๊ฑด๋„ˆ๋›ฐ๋ผ๊ณ  ํ•œ๊ฑฐ๋‹คโ€ฆ

1
sudo rm /etc/nginx/sites-enabled/default

5๏ธโƒฃ Config์— syntax error ์—†๋Š”์ง€ ํ™•์ธ

1
sudo nginx -t

6๏ธโƒฃ reload nginx

1
sudo systemctl reload nginx

โœ… Error Log ๋ณด๊ธฐ

1๏ธโƒฃ Error Log์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐ€๊ธฐ

1
cd /var/log/nginx

lsํ•ด๋ณด๋ฉด error.log์žˆ์„ ๊ฒƒ์ด๋‹ค.

2๏ธโƒฃ View error.log content

1
cat error.log

๐Ÿ”ด ์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ๋”๋‹ˆ 502์—๋Ÿฌ

๊ทธ๋ž˜๋„ https://drugstoreproject.shop/๋Š” ์ž˜ ๋˜์—ˆ๋Š”๋ฐ, Nginx Config์„ค์ •์„ ํ•˜๊ณ  ์˜ค๋‹ˆ 502 ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค.

์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ์ฐ์–ด ๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ๋‚˜์™”๋‹ค.
Screenshot 2024-06-13 at 22 14 12

๐Ÿ”ต ์ด ์—๋Ÿฌ๋Š” configํŒŒ์ผ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ƒ๊ธด๋‹ค.
nginx config์—์„œ 443์œผ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์€ http๋กœ ์šฐ๋ฆฌ ์„œ๋น„์Šค์™€ ์—ฐ๊ฒฐ์„ ์‹œ์ผœ์ค˜์•ผ ํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ๋‘ ๋ฒˆ์งธ server ๋ธ”๋ก proxy_pass๋ฅผ https๊ฐ€ ์•„๋‹Œ http๋กœ ๊ณ ์ณ์ฃผ๋‹ˆ ์ž˜ ์‹คํ–‰๋˜์—ˆ๋‹ค.
` http://localhost:8080;`์ด๋ ‡๊ฒŒ ๋ฐ”๊พธ๊ธฐ

โญ๏ธ ์„ฑ๊ณตํ•œ ๋ชจ์Šต

Screenshot 2024-06-13 at 23 36 15

Screenshot 2024-06-13 at 23 35 36

image

๐Ÿ’ก ์ฐธ๊ณ 

This post is licensed under CC BY 4.0 by the author.