1. HTTPS란?
인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고받을 때 사용하는 통신 규약
2. HTTPS 통신흐름
① 서버(A)는 HTTPS를 적용하기 위해 공개키와 개인키를 만든다.
② 신뢰할 수 있는 CA 기업을 선택하고, 그 기업에게 공개키 관리를 부탁하며 계약을 한다.
CA란? Certificate Authority로, 공개키를 저장해주는 신뢰성이 검증된 민간기업
③ 계약 완료된 CA 기업은 해당 기업의 이름, A서버 공개키, 공개키 암호화 방법을 담은 인증서를 만들고, 해당 인증서를 CA기업의 개인키로 암호화하여 A서버에게 제공한다.
④ A서버는 암호화된 인증서를 갖게 되었다. 이제 A서버는 A서버의 공개키로 암호화되지 않은 HTTPS 요청이 오면, 이 암호화된 인증서를 클라이언트에게 건넨다.
⑤ 클라이언트가 main.html 파일을 달라고 A서버에게 요청했다고 가정한다면, HTTPS 요청이 아니기 때문에 앞서 CA기업이 만들었던 인증서를 받게 된다. 이 때, CA기업의 공개키는 브라우저가 이미 알고 있다!
⑥ 브라우저는 해독한 뒤 A서버의 공개키를 얻게 되었다. 이제 A서버와 통신할 때에는 얻은 A서버의 공개키로 암호화하여 요청을 날린다.