El handshake TLS resuelve el problema del cifrado, pero queda una pregunta critica: cuando tu navegador se conecta a banco.ejemplo.com, como sabe que realmente esta hablando con el banco y no con un atacante que intercepto la conexion y presenta sus propias claves de cifrado? El cifrado por si solo no garantiza que el servidor sea quien dice ser.
Ahi entran los certificados digitales: documentos criptograficos que vinculan una clave publica a una identidad verificada por terceros de confianza.