- 客户端发起HTTPS请求(连接到服务器的443端口)。
- 服务器有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。
- 服务器将服务端的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。
- 客户端收到数字证书之后,会验证证书的合法性。如果证书验证通过,就会生成一个随机的对称密钥,用证书的公钥加密。
- 客户端将公钥加密后的密钥发送到服务器。
- 服务器接收到客户端发来的密文密钥之后,用服务端之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,此时传输的数据都是密文传输。
- 服务器将加密后的密文发送到客户端。
- 客户端收到后,用自己的密钥对其进行对称解密,获取到服务器返回的数据。