Oh! JUN

[개인 공부] Windows OS 기반 SpringBoot 프레임워크 localhost 환경에서 HTTPS 적용하기(mkcert) 본문

웹 해킹/주요정보통신기반시설

[개인 공부] Windows OS 기반 SpringBoot 프레임워크 localhost 환경에서 HTTPS 적용하기(mkcert)

Kwon Oh! JUN 2024. 1. 24. 20:52

1. mkcert 설치하기

 

Releases · FiloSottile/mkcert

A simple zero-config tool to make locally trusted development certificates with any names you'd like. - FiloSottile/mkcert

github.com

위의 사이트에서 사용자의 OS와 맞는 버전을 다운로드 받으면 됩니다.


 

2. 로컬 CA 생성하기

CMD 실행할 때 관리자 모드로 들어가야 됩니다.

C:\Windows\System32>mkcert -install

rootCA.pem - 로컬 인증 기관의 공개키를 담고 있습니다.

rootCA-key.pem - 로컬 인증 기관의 개인키를 담고 있습니다.


3. 인증서 생성하기

C:\Windows\System32>mkcert 127.0.0.1

'127.0.0.1.pem' (공개 키)와 '127.0.0.1-key.pem' (비공개 키) 두 개의 파일을 생성합니다.


 

4. Spring Boot에 인증서 적용하기

C:\Windows\System32>openssl pkcs12 -export -in 127.0.0.1.pem -inkey 127.0.0.1-key.pem -out keystore.p12 -name springboot

위의 두개의 파일들을 아래의 openssl 명령으로 PKCS12 형식의 키 저장소 파일( keystore.p12 )로 변환합니다.


C:\Windows\System32에 위치한 keystore.p12 저장소 파일을 \src\main\resources 디렉토리로 이동시켜줘야 합니다.


5. application.properties 설정하기

# application.properties
# HTTPS Option
server.port=8443
server.ssl.key-store-type=PKCS12
server.ssl.key-store=C:/Users/kwonohjun/sbb/src/main/resources/keystore.p12
server.ssl.key-store-password="사용자가 설정한 패스워드 입력"
server.ssl.key-alias=springboot

server.ssl.key-store = "사용자가 저장한 저장소 파일( keystore.p12 )의 위치" 를 확인하셔야 합니다.


6. Chrome에 인증서 가져오기

Chrome 브라우저 우상단에 프로필 옆에 ... 세로로 되어있는거 클릭하고 설정버튼을 누르고 인증서 검색하면 "인증서 관리" 창을 확인할 수 있습니다. 



우하단에 표시되는 파일의 종류가 있는데 모든 파일로 바꾸면 .pem 파일 확인할 수 있습니다.


 

"모든 인증서를 다음 저장소에 저장" 체크하고 찾아보기에서 "신뢰할 수 있는 루트 인증 기관" 확인합니다.


6. 테스트하기

로컬 페이지에 HTTPS가 적용된것을 확인할 수 있다. 


7. 한계점

취약점 진단 목록에 "데이터 평문 전송" 대응하기 위한 방법으로 HTTPS 적용시켰는데 Burp Suite로 캡쳐가 안됩니다.


위에서 인증서 가져온거랑 똑같이 burp suite CA 인증서도 적용시켜봤는데 똑같습니다.

 


Burp Suite의 CN을 변경하는것이 불가능해서 GPT 형님한테도 물어봤는데  "무시하고 진행하기", "브라우저 설정 변경"은 오류 무시하는거라 Burp Suite에서는 적용안되고, "인증서를 다시 설치하기"는 다시 해봤는데 역시나 안됩니다.