본문 바로가기
AWS

23.07.17) HTTPS로 배포하기(완), 환경변수 설정, CI/CD 구축

by NH_club 2023. 7. 17.
80포트가 열려있지 않은 문제 해결
더보기

다른분께 자문을 얻으러 가서 같이 보는데 여전히 계속 오류가 나서 그 분이 하나하나 같이 찾아봐주시면서 아이디어를 제공해주셨다.

같이 화면을 보며 원래 하던대로 진행하는 도중에 문제점을 발견했다. 인스턴스를 몇번이고 다시 삭제하고 설치했다. EC2 인스턴스 생성하는 방법을 알려주는 노션에서 '포트번호 안쓰고 접속하는 방법'에서 문제가 생겼던 것이다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

이 것은 HTTP의 포트 80 포트로 접속했을 때 8080으로 변경해주는 명령어다. 그래서 certbot이 80포트로 접속하려 할 때 8080로 리다이렉트 돼면서 계속 포트가 열려있지 않다는 오류가 발생한 것이다.

결국 발급 받는데 성공하였고 나는 환희에 젖으며 감사인사를 연달아 드렸다....
2일동안 해결하지 못한 문제를 3시간 동안 같이 봐주시면서 해결해 주셨고 너무 감사드린다....

파일 권한 수정
더보기

SSL인증서를 spring boot에서 필요한 형식(PKCS12)로 변환해야 한다 그러기 위해선 키 파일이 있는 곳에 가서 

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

을 실행하고 나온 파일을 java resouces에 올리고 properties에 아래 문구를 추가하고 빌드 후 배포하면 성공

#SSL
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=패스워드

파일 권한 설정 변경

sudo chmod 755 변경할 파일 경로

755는 파일 권한을 범위 설정이니 나중에 다시 봤을 때 기억 안나면 검색

첫 번째 문제
더보기

로컬에서 서버 구동하고 postman으로 테스트했을 때는 https로 정상 작동이 됐음.. 빌드하고 ubuntu 서버에 올려서 구동했을 때 시작이 됐다고 떴는데도 페이지에 접속이 안 됨.. 

문제는 포트 번호였음! http로 요청이 들어왔을 때는 http 기본 포트 80포트를 8080으로 포워딩 했지만, https의 기본 포트 443은 포워딩을 안 해줘서 접속이 안 됐던 것!

포워딩 후 HTTPS로 배포하기 완료!!!

환경 변수 설정
더보기

윈도우 기준

시스템 환경 변수 편집에 들어가서 사용자 변수에 변수와 값을 할당해주고 properties에 맞게 값을 할당해준다.

우분투 기준

https://velog.io/@jiyeong3141592/LinuxUbuntu-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95

첫 번째 문제
더보기

서버에서 환경변수를 불러오질 못한다. 환경변수에는 값이 잘 들어가있고 터미널에선 불러와지는 것을 확인 했는데 서버를 구동하면 찾지 못한다..
일단 HTTPS배포가 먼저라서 원래 주소값으로 다시 설정하고 배포 완료 후에 다시 properties를 수정했는데 갑자기 된다.. 왜 되는지 모르겠다... 오타도 아닌 것이 똑같이 복붙했기 때문에 오타문제는 아닐 것이다.... 뭐가 문제인지 모르겠다....

CI/CD 구축

'AWS' 카테고리의 다른 글

AWS) RDS 연결 문제 해결  (0) 2023.07.22
23.07.16) HTTPS로 배포하기  (0) 2023.07.17
23.07.15) Https로 배포하기  (0) 2023.07.15