HTTPS म्हणजे फक्त TLS-encrypted channel च्या आत चालणारे HTTP. TLS (Transport Layer Security) तुम्हाला तीन हमी देते: confidentiality (traffic encrypted असते), integrity (न कळता छेडछाड करता येत नाही), आणि authentication (तुम्ही खरोखर certificate मध्ये नमूद केलेल्या server शीच बोलत आहात). कोणतेही HTTP पाठवण्याआधी ते एका handshake मध्ये negotiate केले जाते:
Client Server
│──── ClientHello ──────────────────────▶│ (TLS versions, cipher suites, random)
│◀─── ServerHello + Certificate ─────────│ (chosen cipher + cert with public key)
│ │
│ verify cert against a trusted CA │
│ agree on keys (e.g. ECDHE key exchange)│
│ │
│──── Finished (encrypted) ──────────────▶│
│◀─── Finished (encrypted) ───────────────│
│========= encrypted application data ====│ (now HTTP flows, encrypted)
