[MSA] SSL 적용하기

정명진·2023년 10월 18일
0

사이드 프로젝트로 출시한앱이 갑자기 로그인이 안됐다.

뭔가 이상함을 감지하여 DB를 확인해보니 XSS 공격을 당했다...

기존에 XSS 방어 옵션을 꺼놨는데 이게 화근이 됐다...

그래서 우선 spring secuirty에서 XSS 방어 옵션을 다시 재설정 해주고, http 통신 자체를 없애기로 결정했다. 생각해보니 https 였다면 암호화된 내용을 몰라 이 지경은 되지 않았을 것이란 생각이 들었다.

Spring Cloud Gateway 서버에 SSL 적용을 하기 위해, keytool을 이용해 키 파일을 생성해줬다.

keytool -genkey -alias <alias> -keystore <keystore_file> -storetype PKCS12 -keyalg RSA -keysize <key_size> -validity <validity_days> -storepass <store_password>

다음과 같이 작성하면 된다.

예를 들어

keytool -genkey -alias mj -keystore mykey.p12 -storetype PKCS12 -keyalg RSA -keysize 2048 -validity 3650 -storepass a123456789
  • alias는 명칭을 지어주면 된다. 이는 나중에 keytool에 등록된 인증서를 별칭으로 찾을 때 사용한다.
  • keystore는 저장될 파일명을 적어주면 된다.
  • storetype은 인증서 포맷이다. 미지정시 JKS로 저장된다고 알고 있다.
  • storepass는 인증서의 패스워드이다.
  • keysize는 키의 사이즈다. 최소 2048 바이트 이상을 지정해줘야한다.
  • validity는 유효일수다. 단위가 1일이므로 3650시 10년

이렇게 지정하면 mykey.p12라는게 생성된다.

우선 spring gateway server에 ssl 옵션을 활성화 시켜야 한다.

설정 파일에 다음 옵션을 추가해주자

server:
  ssl:
    enabled: true
    key-alias: mj
    key-store-password: a123456789
    key-store: classpath:mykey.p12
    key-store-type: PKCS12

나의 경우 src/main/resource에 키를 집어 넣어 다음과 같이 설정했다.

profile
개발자로 입사했지만 정체성을 잃어가는중... 다시 준비 시작이다..

0개의 댓글