HTTPS 통신을 위해서는 클라이언트가 서버 인증서를 확인하고 서로의 암호화 규칙을 정하여 통신을 시작해야한다.
이 과정은 SSL/TLS Handshake라고 불린다.
이는 대칭 키와 공개 키의 단점을 보완하고 장점을 살리기 위함이다.
대칭 키 암호화 방식은 비용이 싸다는 장점이 있지만, 비밀스럽게 키를 공유해야 한다.
공개 키 암호화 방식은 공개 키가 공유되어도 서버만 복호화 가능하지만 비용이 비싸다.

클라이언트는 서버에 Client Hello로 연결을 시도하며 자신이 사용 가능한 암호화 방식들을 담아 보낸다. 이는 Cipher Suite에 들어있다.
서버는 클라이언트에 Server Hello로 응답하며 요청한 암호화 알고리즘들 중 하나를 선택하여 알린다.
Certificate는 서버가 자신의 인증서를 클라이언트에 전달하는 것이다. 인증서는 CA의 공개 키로 복호화가 가능하며 이를 통해 진위 여부를 판별할 수 있다.
만약 인증서에 서버의 공개 키가 없다면 Server Key Exchange로 전달하며 생략 가능하다. Client Hello에 따른 모든 응답이 끝나면 Server Hello Done을 보낸다.
클라이언트는 서버와 둘만 알고있는 암호화 방식을 정하여(대칭 키) 서버의 공개키로 암호화해 서버로 보낸다. 이 과정을 Client Key Exchange라 한다.
클라이언트, 서버 모두 Change Ciper Spec으로 준비 완료를 알리고 Finished로 종료한다.