BackEnd/Server

aws EC2, ๊ฐ€๋น„์•„๋ฅผ ์ด์šฉํ•˜์—ฌ Spring Project ์ง์ ‘ ๋ฐฐํฌํ•ด๋ณด๊ธฐ + SSL

ddonghyeo 2023. 9. 1. 23:58

์ด์ œ๋Š” Docker๋ฅผ ํ†ตํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,

Docker๊ฐ€ ๋ฌด์„œ์›Œ ๊ฑด๋“œ๋ฆด ์—„๋‘๋„ ์•ˆ๋‚ฌ์„ ๋•Œ, ์„œ๋ฒ„๋ฅผ ์ง์ ‘ ๋ฐฐํฌํ–ˆ๋˜ ํž˜๋“ค์—ˆ๋˜ ๊ณผ์ •์„ ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

๊ทธ๋ž˜๋„ ๋‚˜๋ฆ„ ์ผ๋ จ์˜ ๊ณผ์ •๋“ค์„ ์Šคํ‚ตํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ผ์ผ์ด ๊ฒช์–ด๋ณด์•„์„œ ์—ฌ๋Ÿฌ๋ชจ๋กœ ๋„์›€์ด ๋งŽ์ด ๋๋˜ ๊ฒƒ ๊ฐ™๋‹ค.๐Ÿฅน

 

 

1. AWS EC2 ํ™˜๊ฒฝ ๊ตฌ์ถ•

 

1.1 ์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ

aws์—์„œ ์ธ์Šคํ„ด์Šค ํ•ญ๋ชฉ์—์„œ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘์„ ๋ˆ„๋ฅด์ž.

๋‹ค๋ฅธ ํ•ญ๋ชฉ์€ ๋‹ค ๊ฑด๋„ˆ ๋›ฐ๊ณ , ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ํ”„๋ฆฌ ํ‹ฐ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ t2.micro๋กœ ์„ค์ •


'์ƒˆ ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ'์„ ๋ˆŒ๋Ÿฌ์„œ ์ƒˆ๋กœ์šด ํ‚ค ํŽ˜์–ด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์—ˆ๋‹ค.

์›ํ•˜๋Š” ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์ง€๋Š” ํ‚ค์ด๋ฆ„.pem ์„ ์ ˆ๋Œ€๋กœ ์œ ์ถœํ•˜์ง€ ๋ง๊ณ , ์‚ญ์ œ๋„ ํ•˜์ง€ ๋ง๊ณ  ์ž˜ ๊ฐ–๊ณ ์žˆ์ž.
PuTTY์ ‘์†์šฉ์ด๋ผ๋ฉด ppk๋กœ ๋งŒ๋“ค์ž.

 

 

๋‚˜๋จธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ๊ธฐ๋ณธ ์„ค์ •์„ ๋”ฐ๋ผ๊ฐ„๋‹ค.
์›๋ž˜๋Š” SSH๋ฅผ ๋‚ด ์•„์ดํ”ผ๋งŒ ํ—ˆ์šฉํ•ด์„œ ์ œ๋Œ€๋กœ ๋œ ๋ณด์•ˆ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์›น ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด HTTPS, HTTP ํŠธ๋ž˜ํ”ฝ๋„ ํ—ˆ์šฉํ•ด์ฃผ์ž.

 

 

ํ”„๋ฆฌํ‹ฐ์–ด๋Š” 30GB๊นŒ์ง€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ž˜๋ชป ์„ค์ •ํ•˜๋ฉด ์š”๊ธˆํญํƒ„ ๋งž์œผ๋‹ˆ 8GB๋งŒ ํ•˜๊ฒ ๋‹ค..

 

 

์ •์ƒ์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

1.2 ํƒ„๋ ฅ์  IP ํ• ๋‹น

 

 

์™ผ ์ชฝ์— ํƒ„๋ ฅ์  IPํƒญ์„ ๋“ค์–ด๊ฐ„๋‹ค.


ํƒ„๋ ฅ์  IP ์ฃผ์†Œ ํ• ๋‹น์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ํ• ๋‹น์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋œ๋‹ค.


์„ฑ๊ณต์ ์œผ๋กœ ํƒ„๋ ฅ์  IP๋ฅผ ํ• ๋‹น ๋ฐ›์•˜๋‹ค. ์ด์ œ ์ด IP๋ฅผ ๋ฐฉ๊ธˆ ์ƒ์„ฑํ–ˆ๋˜ ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.
ํ• ๋‹น๋œ IP์ฃผ์†Œ๋ฅผ ํด๋ฆญํ•ด์„œ ์„ธ๋ถ€ ์„ค์ •์— ๋“ค์–ด๊ฐ„๋‹ค.


์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” ํƒ„๋ ฅ์  IP ์ฃผ์†Œ ์—ฐ๊ฒฐ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.


์ธ์Šคํ„ด์Šค์—์„œ ๋ฐฉ๊ธˆ ๋งŒ๋“ค์—ˆ๋˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.

์„ฑ๊ณต์ ์œผ๋กœ ํผ๋ธ”๋ฆญ IP๊ฐ€ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

2. SSH ์ ‘์† ํ™˜๊ฒฝ ๊ตฌ์ถ•

 

2.1 configํŒŒ์ผ ์„ค์ •


ํ„ฐ๋ฏธ๋„์„ ์ผœ์„œ .ssh ํด๋”๋กœ ์ด๋™ํ•œ๋‹ค.

$ vim config

๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด configํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

 

~/ssh/config

Host test
    HostName IP์ฃผ์†Œ
    User ec2-user
        IdentityFile ํ‚ค ๊ฒฝ๋กœ

 

๋ฅผ ์ž‘์„ฑํ•ด์„œ ssh์ ‘์†์„ ์ž๋™ํ™”ํ•ด์ค€๋‹ค.

 

 

$ ssh ์„œ๋ฒ„์ด๋ฆ„

์„ ํ†ตํ•ด ssh์ ‘์†์„ ํ•ด์ค€๋‹ค.

Are you sure you want to continue connecting (yes/no/[fingerprint])? ๊ฐ€ ๋‚˜์˜ค๋ฉด
yes๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ, ํ‚ค์˜ ๊ถŒํ•œ์ด ์—†์–ด์„œ ๊ทธ๋ ‡๋‹ค.

 

2.2 ํ‚ค ๊ถŒํ•œ ์„ค์ •

ํ„ฐ๋ฏธ๋„์—์„œ ํ‚ค๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ๋กœ ๊ฐ€์ค€๋‹ค.

 

$ chmod 600 ํ‚ค์˜ ๊ฒฝ๋กœ

ํ•ด๋‹นํ•˜๋Š” ํ‚ค์— 600๊ถŒํ•œ์„ ์ฃผ๋ฉด ๋œ๋‹ค.

๋‹ค์‹œ ssh ์ ‘์†์„ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค.


์„ฑ๊ณต์ ์œผ๋กœ ์„œ๋ฒ„์— ์ ‘์†์„ ์™„๋ฃŒํ–ˆ๋‹ค.

 

3. Spring ํ”„๋กœ์ ํŠธ ๊ตฌ์ถ•

 

๊ฐ„์ด๋กœ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.
https://start.spring.io/

 

ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ๊ฐ„์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.


๋ฏธ๋ฆฌ 80ํฌํŠธ๋กœ ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

 

ํŽ˜์ด์ง€ ์ •์ƒ ์ž‘๋™ ํ™•์ธ


ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ๊นƒํ—ˆ๋ธŒ์— ๋ฐฐํฌํ–ˆ๋‹ค.

์ด์ œ ์„œ๋ฒ„์—๋‹ค ๋ฐฐํฌํ•ด๋ณด์ž.

 

4. ์„œ๋ฒ„ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ

 

4. 1 Java ๋‹ค์šด๋กœ๋“œ

 $ sudo yum install java

yum์„ ํ†ตํ•ด java๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ, ์›ํ•˜๋Š” java๋ฒ„์ „์„ ๊ฐ€์ ธ์™€์„œ ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ๋‹ด์œผ๋ ค๊ณ  ํ•œ๋‹ค.

https://jdk.java.net/
์—ฌ๊ธฐ์„œ ํ•ด๋‹นํ•˜๋Š” Java ๋ฒ„์ „์„ ๋‹ค์šด๋ฐ›์ž.

$ cd /usr/lib
$ wget jdk๋งํฌ


์••์ถ• ํ’€๊ธฐ

$ tar -zxvf ์••์ถ•ํŒŒ์ผ

์ž˜ ์„ค์น˜๋˜์—ˆ๋‚˜ ํ™•์ธ

 

$ /usr/lib/jdk-์ž๋ฐ”๋ฒ„์ „/bin/java -version

java 19๊ฐ€ ์ž˜ ์„ค์น˜๋˜์—ˆ๋‹ค.

 

 

 

4.2 ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋ก

 

$ vi /etc/profile

profile ์ˆ˜์ •์„ ๋“ค์–ด๊ฐ€์„œ, Shift + G ๋ฅผ ๋ˆŒ๋Ÿฌ ๋งจ ์•„๋žซ ์ค„์„ ๋“ค์–ด๊ฐ€์„œ, ๋‹ค์Œ์„ ์ž‘์„ฑํ•œ๋‹ค.

 

export JAVA_HOME=/usr/lib/jdk-์ž๋ฐ” ๋ฒ„์ „

 

์ €์žฅํ•˜๊ณ  ๋‚˜์™€์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์ค€๋‹ค.

$ source /etc/profile

 

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋ก์ด ์™„๋ฃŒ๋๋‹ค.

$ echo $JAVA_HOME

์„ ์ž…๋ ฅํ•ด ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋ก์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์ค€๋‹ค.

 

 

 

4.3 ๋ณ„์นญ ๋“ฑ๋ก

๋‹ค์Œ์€ Alias (๋ณ„์นญ)๋“ฑ๋ก์„ ํ•ด์ค€๋‹ค.

$ vi /etc/bashrc

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ€์žฅ ์•„๋žซ ์ค„์— ๋‘ ์ค„์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

alias java="/usr/lib/jdk-19.0.2/bin/java"
alias javac="/usr/lib/jdk-19.0.2/bin/javac"

$ source /etc/bashrc

์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์ €์žฅํ•ด์ค€๋‹ค.


java ๋ช…๋ น์–ด๊ฐ€ ์ž˜ ์ž‘๋™ํ•œ๋‹ค.

 

 

5. gradle ๋‹ค์šด๋กœ๋“œ

๋‹ค์Œ์€ gradle์„ ์„ค์น˜ํ•ด๋ณด์ž.
gradle ๋‹ค์šด๋กœ๋“œ
https://services.gradle.org/distributions-snapshots/
์—ฌ๊ธฐ์„œ ์›ํ•˜๋Š” gradle ๋ฒ„์ „์„ wget์„ ํ†ตํ•ด์„œ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.

wget https://services.gradle.org/distributions/gradle-5.0-bin.zip -P /tmp

์••์ถ• ํ’€๊ธฐ

$ sudo unzip -d /opt/gradle /tmp/gradle-5.0-bin.zip

์ถ”์ถœ ํ™•์ธ

$ ls /opt/gradle/gradle-5.0

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

$ sudo nano /etc/profile.d/gradle.sh

๋‹ค์Œ ๋ถ™์—ฌ๋„ฃ๊ธฐ

# /etc/profile.d/gradle.sh

export GRADLE_HOME=/opt/gradle/gradle-5.0
export PATH=${GRADLE_HOME}/bin:${PATH}

์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ถŒํ•œ ์„ค์ •

$ sudo chmod +x /etc/profile.d/gradle.sh

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋กœ๋“œ

$ source /etc/profile.d/gradle.sh

์„ค์น˜ ํ™•์ธ

$ gradle -v


Gradle ์„ค์น˜ ์™„๋ฃŒ!

 

6. git ์„ค์น˜

์ด์ œ git์„ ์„ค์น˜ํ•ด์„œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์™€๋ณด์ž.

$ sudo yum install git

๊ฐ„๋‹จํ•˜๊ฒŒ yum์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•˜์ž.


git ์„ค์น˜ ์™„๋ฃŒ.
์ด์ œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ git clone์„ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜ค์ž.

 

 

 

7. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

๋จผ์ € clone์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค.

 


ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ gradle ๋นŒ๋“œ๋ฅผ ์‹œ์ผœ์คฌ๋‹ค.

  • -x test ์˜ต์…˜ : test๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋นŒ๋“œ

 

8. ์„œ๋ฒ„ ๋ฐฐํฌ

๋นŒ๋“œ ํ›„์—
์ด์ œ /build/libs ํด๋”์— ์žˆ๋Š” ์Šค๋ƒ…์ƒท์„ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

$ sudo nohup java -jar -Dspring.profiles.active=prod build/libs/demo-0.0.1-SNAPSHOT.jar &

nohup -> ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ ์ค‘ ๋กœ๊ทธ ์ถ”์ถœ


& -> ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰

 


ํผ๋ธ”๋ฆญ IP๋ฅผ ํ†ตํ•ด ์ ‘์†์€ ํ™•์ธ๋๋‹ค.

 

9. ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ

๊ฐ€๋น„์•„ https://www.gabia.com/ ์—์„œ ๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ–ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ€์„œ, DNS ์„ค์ •์„ ํ•ด์ค€๋‹ค.

 

 

ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ •์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.


๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ ˆ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค.

@ : ์•ž์— www๋ฅผ ๋ถ™์ด์ง€ ์•Š์•„๋„ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. (dongpage.shop์œผ๋กœ ์ ‘์†ํ•  ๋•Œ)
www : ์•ž์— www๋ฅผ ๋ถ™์ผ ๋•Œ ์ ‘์†ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

 

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•ด์ฃผ๋ฉด, ๋„๋ฉ”์ธ ์„ค์ •์ด ์™„๋ฃŒ๋œ๋‹ค.

์•„์ง https์„ค์ •์ด ๋˜์ง„ ์•Š์•˜์ง€๋งŒ, ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

10. SSL ์„ค์ •

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

 

10.1 ์ธ์ฆ์„œ ๋ฐœ๊ธ‰


https://zerossl.com/

ZeroSSL์ด๋ผ๋Š” ์‚ฌ์ดํŠธ์—์„œ SSL์ธ์ฆ์„œ๋ฅผ ๋ฐ›์„ ๊ฒƒ์ด๋‹ค.

New Certificate๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.


๋‚ด ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๊ณ , Next Step์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.


๋ฌด๋ฃŒ SSL์ธ 90์ผ์ œํ•œ ์ธ์ฆ์„œ๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.


Auto Generate๋ฅผ ์„ ํƒํ•˜๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.


Free Plan์ด ์„ ํƒ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๋„˜์–ด๊ฐ„๋‹ค.

 

์ด์ œ ์ด ๋„๋ฉ”์ธ์ด ๋‚ด ๋„๋ฉ”์ธ์ธ์ง€๋ฅผ ํ™•์ธํ•  ์‹œ๊ฐ„์ด๋‹ค.

 

DNS ์„ค์ •์„ ํ†ตํ•ด์„œ ์ธ์ฆ์„ ํ•˜๊ฒ ๋‹ค.

 

๊ฐ€๋น„์•„์—์„œ CNAME๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ,

 

Name ํ•ญ๋ชฉ์—, ๋‚ด ๋„๋ฉ”์ธ ์•ž์— ์žˆ๋Š” ๋‚ด์šฉ์€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์—

 

Point To ๋Š” ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ์˜ ๊ฐ’/์œ„์น˜์— ๋„ฃ๋Š”๋‹ค.

*๋งจ ๋’ค์— . ์„ ์ถ”๊ฐ€๋กœ ๋ถ™์—ฌ์•ผํ•œ๋‹ค.

 

์„ค์ •์„ ์ ์šฉํ•˜๊ณ  Veryfiy Domain์„ ๋ˆ„๋ฅด๋ฉด ์ธ์ฆ์ด ์™„๋ฃŒ๋œ๋‹ค.

 

 

 

 

 

10.2 keystore

์ด์ œ Server Type์„ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•  ๊ฒƒ์ด๋ฏ€๋กœ, ๋‚ด์žฅ ์›น์„œ๋ฒ„์ธ Tomcat์„ ์„ ํƒํ•˜๊ณ  Download Certificate๋ฅผ ๋ฐ›์•„์ค€๋‹ค.

 


์••์ถ•์„ ํ’€๋ฉด ์„ธ ๊ฐ€์ง€ ํŒŒ์ผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ ์„œ๋ฒ„์— SSL ์„ค์ •์„ ์ ์šฉ์‹œํ‚ค๊ธฐ ์ „์—,


์œ„์—์„œ ๋ฐ›์€ ์„ธ ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ keystore PKCS ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

๋จผ์ € openssl์„ ๋‹ค์šด๋ฐ›์•„์•ผ ํ•œ๋‹ค.

 

$ brew install openssl

 

๋งฅ์— brew๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์œ„ ๋ช…๋ น์–ด๋กœ openssl์„ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

$ openssl pkcs12 -export \
-name demo.test.me \
-in ./certificate.crt \
-CAfile ./ca_bundle.crt \
-inkey ./private.key \
-out ./test.p12

์œ„ ๋ช…๋ น์–ด๋กœ keystore์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

๊ฐ ์„ธ๊ฐ€์ง€ ํŒŒ์ผ์„ Input์œผ๋กœ ๋„ฃ์œผ๋ฉด, ๊ฒฐ๊ณผ๋ฌผ๋กœ p12 ํ‚คํŒŒ์ผ์ด ์ƒ๊ธด๋‹ค.


*๊ถŒํ•œ์ด ๋ง‰ํžˆ๋ฉด ์•ž์— sudo๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค.


์›ํ•˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•œ๋‹ค. (2๋ฒˆ) <- ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค!!

 

10.3 ์„œ๋ฒ„ ์ ์šฉ(yml)

์ด์ œ ์„œ๋ฒ„ ํ”„๋กœ์ ํŠธ ์„ค์ •ํŒŒ์ผ(application)์—์„œ ์„ค์ •ํ•ด์ฃผ์ž.

server:
    port: 443
    ssl:
        enabled: true
        enabled-protocols:
        - TLSv1.1
        - TLSv1.2
        key-store: "/etc/pki/tls/certs/test/test.p12"
        key-store-password: "password"
        key-store-type: "PKCS12"

 

์ด์ œ 443(https)๋กœ ์—ด๊ณ , ์•„๋ž˜์ฒ˜๋Ÿผ ์„ค์ •ํ•ด์ค€๋‹ค.


๊ฐ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๊ฒฝ๋กœ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค.

 

์ด์ œ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ , ์‹คํ–‰ํ•˜๋ฉด


443ํฌํŠธ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด๋ฆฌ๊ณ 


์ธ์ฆ์„œ ์„ค์ •์ด ์™„๋ฃŒ๋๋‹ค.