전송 레이어 보안을 위해 SSL 인증서 생성, 이를 SpringBoot웹 어플리케이션에 적용하면 웹 어플리케션은 HTTPs 프로토콜을 통해 서비스 된다.
**웹 요청이 어떤 프로토콜(http or https)로 전달되어야 하는지 처리
HTTP(Hyper Text Transfer Protocol)는 인터넷상에서 데이터를 주고 받기 위한 프로토콜
Client - Server가 주고 받는 데이터는 암호화되어 있지 않다. 따라서, 악의적인 데이터 감청, 데이터 변조의 가능성 있다.
HTTPS(Hyper Text Transfer Protocol Secure)는 HTTP 프로토콜의 암호환 버전
Client - Server가 주고 받는 모든 데이터는 암호화되어 있다.
데이터 암호화를 위해 SSL(Secure Sockets Layer)을 사용
SSL 암호화를 위해 SSL인증서가 필요하다
서버는 SSL인증서를 Client에 전달한다.
Client는 Server가 전달한 SSL 인증서를 검증하고, 신뢰할 수 있는 서버인지 확인한다.
신뢰할 수 있는 Server라면 SSL 인증서의 공개키를 이요해 실제 데이터 암호화에 사용될 암호화키를 암호화 하여 서버에 전달한다.
1. SSL 인증서 생성
java에서 제공하는 keytool로 임의로 SSL 인증서 생성
2. SSL 인증서 적용