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 |
---|