항구 Log 프로젝트 - Spring-boot에 Https 적용

Ango·2023년 7월 20일
0

Project

목록 보기
7/16

우선 HTTPS에 대한 개념을 확실하게 잡았다.

HTTPS 의 어떻게 요청되는가를 공부해보았는데

  1. client가 Https 요청
  2. server에서 ssl 인증서와 public key를 제공
  3. 올바른 CA에서 발급한 인증서인지 확인
  4. 제공받은 public key로 데이터를 암호화 해서 보냄
  5. 서버는 private key로 데이터를 복호화하고 로직을 수행

이제 실질적인 발급 과정이다.

배포할 때 AWS를 사용하다보니 호환성이 좋을 것 같다고 생각해서 ACM으로 AWS에 제공하는 SSL 인증서를 받으려고 했지만 발급 시간이 너무 오래걸렸다.


그래서 Lets's Encrypt 라는 무료 SSL인증서 인증기관에서 인증서를 발급 받기로 결정했습니다.

3개월마다 SSL 인증서를 갱신해야 한다는 단점이 존재하지만 갱신을 자동으로 해주는 certbot을 사용했습니다.

문제점 : SSL 인증서를 Spring boot에 등록 시키는 과정에서 일어난
keystore.p12를 인식하지 못하는 문제가 발생함

해결방법 1. keystore.p12의 위치의 절대 경로를 직접 지정함.

server.ssl.key-store=classpath:keystore.p12

해결방법 2. . application properties 파일에 SSL 연결에 사용할 키 스토어 내의 키의 별칭을 지정해줌

 server.ssl.key-alias = tomcat 
profile
웹 벡엔드 개발자가 되어보자!

0개의 댓글

관련 채용 정보