HTTP(HyperText Transfer Protocol)는 HyperText인 html을 전송하기위한 통신규약이다
여기서 Https 모듈은 웹서버에 SSL 혹은 TLS 암호화를 추가한다
기존의 http요청은 다른사람이 요청을 가로채게 되면 데이터가 그대로 보여지게 되어서 보안상의 문제가 있었고
https는 데이터를 암호화해서 중간에 다른사람이 요청을 가로채더라도 내용을 확인 할 수 없도록 한다
특히 결제나 로그인을 할때 신용카드정보, 아이디와 비밀번호를 서버로 전송해야 하기 때문에 많이 사용한다
SSL(Secure Socket Layer)은 인터넷 보안 프로토콜이고 HTTP 통신에 보안을 강화한다
ssl은 암호화된 데이터를 전송하기 위해서 공개키와 대칭키를 사용한다
SSL 순서
1. 웹브라우저는 SSL로 암호화된 페이지를 웹서버에게 요청한다(https://)
2. 웹서버는 Public key를 인증서와 함께 브라우저에게 전송
3. 웹브라우저는 인증서가 인증된기관(CA)로 부터 서명된 것인지 확인하고 인증서가 유효한지 확인한다
4. 웹브라우저는 Public key를 사용해 url, http 데이터 대칭 암호화키를 이용해 암호화 & 전송
5. 웹서버는 Private key를 이용해 URL, http데이터를 복호화
6. 웹서버는 요청받은 url에 대한 응답 을 대칭 암호화 키를 이용해 브라우저로 전송
7. 웹브라우저는 대칭 암호키를 이용해 http데이터와 html문서를 복호화하고 화면에 정보를 뿌린다
https와 ssl이 같은 의미는 아니다
인터넷과 웹이 같은 의미가 아니고 웹이 인터넷 위에서 돌아가는 서비스인 것과 같이 https도 ssl 위에서 돌아가는 프로토콜 이다
참고자료
https 생활코딩
ssl 통신과정 생활코딩