본문 바로가기

Java/spring boot

[Spring Boot] HTTPS 설정

HTTPS 란?

HTTPS(HyperText Transfer Protocol over Secure Socket Layer) 란 월드 와이드 웹 통신 프로토콜인 HTTP 가 보안이 강화된 버진임. 

클라이언트와 서버 간의 모든 커뮤니케이션을 암호화 하기 위하여 SSL 이나 TLS을 사용

 

 

Spring Boot HTTPS 설정

 

1. KeyStore 생성

터미널 창에서 프로젝트 폴더로 이동 후 아래내용 붙여넣기

keytool 

-genkey 

-alias tomcat 

-storetype PKCS12 

-keyalg RSA 

-keysize 2048 

-keystore keystore.p12 

-validity 4000

genkey: 키를 생성  alias: 키의 별칭  storetype: 키의 타입  keysize: 키의 크기(바이트) 

 

 

2. Password 입력

 

 

3. 내용 입력 및 생성

내용 입력 후 마지막에 창이 한글 일 시 "예" 영문일 시 "yes" 입력 후 엔터

 

성공 시 폴더내에 keystore.p12 파일 생성

 

 

4. Spring Boot 프로젝트 application.properties에 설정 추가 및 실행

server.ssl.key-store: keystore: 파일 경로

server.ssl.key-store-password: 설정한 비밀번호

server.ssl.keyStoreType: 설정한 KeyStoreType (1번에서 설정한 storetype)

server.ssl.keyAlias: 설정한 별칭 (1번에서 설정한 alias)

 

 

공식적인 인증서가 아니므로 해당페이지로 경고. 무시하고 고급 -> localhost로 이동 클릭

 

정상적으로 페이지 오픈

 

 

HTTPS 와 HTTP 동시 사용 (Tomcat)

 

현재 스프링 부트의 내장 톰캣은 HTTPS 를 사용중 이지만, 자바 코드를 이용하여 HTTP서버를 하나 더 생성할 수 있음.

 

루트 패키지 하위에 적당한 컴포넌트 생성 후 2번 메서드 같이 HTTP 연결 생성. 이 떄 setPort 로 포트 등록 시 내장 톰캣의 포트와 겹치지 않게 해야 함.

생성한 연결로 1번 메서드 같이 웹 서버 팩토리 생성 후 1번 연결 추가. 이때 1번 서버팩토리는 @Bean 어노테이션으로 빈으로 등록해야 함.

 

 

8080 포트의 https 서버와 8090 포트이 http 서버 동시에 사용 가능.

'Java > spring boot' 카테고리의 다른 글

[Spring Boot] 프로젝트 생성  (0) 2021.08.17