[AWS] NGNIX를 이용해 SSL 프로토콜 적용하기

hanana·2024년 2월 26일
0

AWS 시작하기

목록 보기
6/6

본 포스팅은 인프런 JSCODE 박재성님의 비전공자도 이해할 수 있는 AWS 입문/실전 강의를 수강후
참고하여 작성하였습니다.
https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-%EC%9D%B4%ED%95%B4%ED%95%A0%EC%88%98%EC%9E%88%EB%8A%94-aws-%EC%9E%85%EB%AC%B8%EC%8B%A4%EC%A0%84/dashboard

기존 생성한 EC2 인스턴스의 인바운드 보안규칙에
사용자 지정 TCP를 추가해준다. 포트는 9000포트로 지정하였다.

STEP 01. NGNIX 설치하기

$ sudo apt update
$ sudo apt install nginx

명령어를 통해 ngnix를 설치해준다.
이후 기존 주소에 접속하면

ngnix가 적용되었음을 확인할 수 있다.

STEP 02. Certbot 설치하기

$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

명령어를 통해 Certbot을 설치한다.
두번째 명령어 실행시 CLI에 아무런 메세지가 뜨지 않는다. (혼란 주의)

$ sudo certbot --nginx -d ${도메인명}

를 입력하여 SSL 인증서를 발급받는다.
이메일주소가 필요하다.


성공적으로 인증서가 발급되었다.
https 프로토콜을 이용해서 접근해도 정상적으로 서버에 접속이 됨을 알 수 있다.

STEP 03. PROXY ROUTE 설정하기

/etc/nginx/sites-available

경로의 default 파일에서
server_name이 dns와 일치하는곳을 찾아서 proxy_pass로 바꿔준다.

저장을 한 후 다시한번 도메인주소로 요청을 보내면

백엔드 서버로 포팅된것을 확인할 수 있다.


추가 스프링 부트와 연결하기

STEP 04. 파일 형식 변경하기

.pem파일은 스프링 부트에서 인식을 못하므로 PKCS12 형식으로 변경이 필요합니다.

cd /etc/letsencrypt/live/{도메인명}

으로 이동한 후

sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name ttp -CAfile chain.pem -caname root

명령어를 통해 파일 변환을 합니다.

root@ip-172.../etc/letsencrypt/live/hanaworlds.net# sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name ttp -CAfile chain.pem -caname root
Enter Export Password:
Verifying - Enter Export Password:
root@ip-172-31-9-46:/etc/letsencrypt/live/hanaworlds.net# ls
README  cert.pem  chain.pem  fullchain.pem  keystore.p12  privkey.pem
root@ip-172...:/etc/letsencrypt/live/hanaworlds.net# 

비밀번호를 필요로 합니다.

STEP 05. p12 파일 옮기기

mv {파일명} {이동할 경로} 명령어를 통해 파일을 옮길 수 있습니다.
저는 Jenkins의 기본 workspace 경로를 사용했습니다.

root@ip-172...:/etc/letsencrypt/live/hanaworlds.net# ls
README  cert.pem  chain.pem  fullchain.pem  keystore.p12  privkey.pem
root@ip-172...:/etc/letsencrypt/live/hanaworlds.net# mv keystore.p12 /var/lib/jenkins/workspace/login_server/src/main/resources

STEP 06. application.yml 파일 변경하기

server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-type: PKCS12
    key-store-password: {password}

저는 keystore.p12 파일을 application.yml과 같은 경로에 두었습니다.

profile
성숙해지려고 노력하지 않으면 성숙하기까지 매우 많은 시간이 걸린다.

0개의 댓글