- Today
- Total
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- chrome80
- jenkins
- container
- 브랜치전략
- spring
- Kotlin
- websocket
- Spring Security
- EntityTransaction
- JPA
- 캐싱전략
- docker
- 리뷰
- LazyInitialization
- 젠킨스
- SPRING JWT
- 후기
- SpringBoot
- Java
- redis
- 팀네이버
- network
- 스프링
- Project
- 프로젝트
- 만들면서 배우는 클린 아키텍처
- JWT
- infra
- 책
- 팀네이버 공채
PPAK
[Spring/SpringBoot] SpringBoot 로컬 서버 Https 적용 본문
자바는 기본적으로 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 가 적용된 메세지가 스프링 톰캣에 뜰 것 이고, 실제 배포 환경에서는 공인 인증서를 발급 받아서 사용하면 됩니다.

'spring' 카테고리의 다른 글
| [Spring/JWT] Access Token 과 Refresh Token 을 어디에 저장하고 어떻게 교환해야 할까? (4) | 2022.08.27 |
|---|---|
| [Spring/Spring Boot] 서버 https 적용 (Certbot, Let's Encrypt) (3) | 2022.08.27 |
| [Spring] Spring Security 에서 JWT 를 통한 인증/인가 수행하기 (9) | 2022.08.07 |
| [Spring/SpringBoot] Spring Boot Layered Architecture (0) | 2022.07.31 |
| [Spring/JPA] EntityManagerFactory, EntityManager, EntityTransaction 에 대해서 (1) | 2022.07.06 |