PPAK

[Spring/SpringBoot] SpringBoot 로컬 서버 Https 적용 본문

spring

[Spring/SpringBoot] SpringBoot 로컬 서버 Https 적용

PPakSang 2022. 8. 17. 17:15

자바는 기본적으로 KeyStore 와 KeyStoreSpi 클래스를 활용하여 인증서를 관리하는 방식을 제공합니다.

해당 클래스에서 사용되는 파일을 생성하는 keytool 커맨드는 jdk 에서 기본적으로 제공합니다. (OpenSSL 과 비슷)

 

본 포스팅에서는 keytool 을 활용하여 인증서를 생성하고 https 통신을 적용해보려고 합니다.

keytool -genkey -alias AN-keystore -storetype PKCS12 \
-keyalg RSA -keysize 2048 -keystore AN-keystore.p12 -validity 3650

-genkey: keytool 의 키 생성

-alias: keystore 별칭

-storetype: PKCS12, JKS 중 택 1 (자바에서는 Key 를 저장하는 두 가지 방식을 제공한다. PKCS12 는 OpenSSL 에서도 생성이 가능하기 때문에 해당 타입을 선택)

-keyalg: 키 암호화 알고리즘

-keysize: 키 길이

-keystore: keystore 이름(경로)

-validity: 유효기간

 

이후 여러가지 개인 정보를 묻는데 적절히 입력하면 된다.

 

입력한 경로에 keystore.p12 파일이 생성된 것을 확인할 수 있다.

 

 

SpringBoot 에 적용하기

key-store: keystore 파일 경로

key-store-type: keystoe 타입

key-alias: keystore 별칭

key-store-password: keystore 비밀번호

저의 경우에는 classpath 경로( main/resources) 에 포함시켜 빌드할 때 keystore 파일이 포함될 수 있도록 하였습니다.

 

class path 확인 방법

intellij project Structure 의 main package 확인

 

 

개발 환경에서는 여기까지만 해도 아래와 같이 https 가 적용된 메세지가 스프링 톰캣에 뜰 것 이고, 실제 배포 환경에서는 공인 인증서를 발급 받아서 사용하면 됩니다.

 

Comments