Die SSL-Kommunikation zwischen Client und Server beginnt immer mit dem so genannten Handshake. Der Handshake ermöglicht die Authentifizierung des Servers sowie die Vereinbarung der zu verwendenden Verschlüsselungsverfahren und Schlüssel.
Bei jedem Handshake muss sich der Server gegenüber dem Client mithilfe von Public Key-Verschlüsselung authentifizieren. Grundsätzlich kann auch der Server verlangen, dass sich der Client ihm gegenüber authentifiziert (ebenfalls via Public Key-Verschlüsselung). Dies ist jedoch eher die Ausnahme.
Vereinfacht dargestellt, läuft der SSL-Handshake in folgenden Schritten ab:
Der Client sendet eine Liste mit den von ihm unterstützten Verschlüsselungsverfahren (Cipher Suites) an den Server.
Der Server wählt ein Verfahren aus dieser Liste aus und sendet es zusammen mit seinem Zertifikat, das den Public Key des Servers enthält, zurück an den Client.
Der Client prüft, ob das Server-Zertifikat bereits von einer CA signiert wurde, deren Zertifikat beim Client vorliegt, und der er somit implizit vertraut. Ferner prüft der Client, ob das Zertifikat für den Server ausgestellt wurde, zu dem er die Verbindung herstellen möchte. Im Einzelnen prüft der Client dabei,
ob der CN (Common Name) des Subject mit dem FQDN (Fully Qualified Domain Name) des Servers übereinstimmt, oder
ob der DNS-Teil des X.509v3 Subject Alternative Name mit dem FQDN des Servers übereinstimmt.
Der Client verschlüsselt mithilfe des Public Key des Servers ein PreMaster Secret und sendet dieses an den Server. Client und Server berechnen dann aus dem PreMaster Secret und den in den vorangegangenen Schritten ausgetauschten Zufallszahlen die Schlüssel, die für die verschiedenen Verschlüsselungs- und MAC-Algorithmen benötigt werden.
Bei entsprechender Konfigurierung fordert der Server im Rahmen des Handshakes ein Zertifikat vom Client an. Der Server prüft, ob dieses Zertifikat von einer CA signiert wurde, die er als vertrauenswürdig einstuft. Weitergehende Überprüfungen des Client-Zertifikats werden im Rahmen der interNet Services nicht durchgeführt.