HTTPS = HTTP chạy trên TLS. TLS cho ba đảm bảo: mã hóa (nghe lén không đọc được), toàn vẹn (không sửa được giữa đường), xác thực (chắc đang nói với đúng server qua chứng chỉ).
Handshake (rút gọn) trước khi truyền dữ liệu:
1. Client gửi ClientHello: các phiên bản TLS và cipher suite hỗ trợ + số ngẫu nhiên.
2. Server chọn tham số, gửi certificate (chứa public key, do CA ký).
3. Client verify chứng chỉ qua chuỗi CA tin cậy (đúng domain, còn hạn, không thu hồi).
4. Hai bên trao đổi khóa (ECDHE cho forward secrecy) để cùng suy ra một khóa phiên đối xứng — bất đối xứng chỉ dùng để thiết lập, không dùng cho dữ liệu (chậm).
5. Đổi sang mã hóa; từ đó dữ liệu được mã hóa bằng khóa đối xứng (nhanh).
TLS 1.3 rút gọn còn ~1 vòng (1-RTT, có 0-RTT). Thực hành đúng: chỉ TLS 1.2+, cipher mạnh, HSTS, chứng chỉ hợp lệ.