-
客户端发起 https 请求,连接到服务器的 443 端口。
-
服务器必须要有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。
-
服务器将自己的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。
-
客户端收到数字证书之后,会验证证书的合法性。如果证书验证通过,就会生成一个随机的对称密钥,用证书的公钥加密。
-
客户端将公钥加密后的密钥发送到服务器。
-
服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,这样子传输的数据都是密文啦。
-
服务器将加密后的密文返回到客户端。
-
客户端收到后,用自己的密钥对其进行对称解密,得到服务器返回的数据。
=================================================
基础
https 是 http 的“升级”版本:
HTTPS = HTTP+ SSL/TLS
复制代码
SSL 是安全层,TLS 是传输层安全,是SSL 的继承。使用SSL或TLS 可确保传输数据的安全性。
使用 HTTP 可能看到传输数据是: “这是明文信息”
使用 HTTPS 可能看到: “283hd9saj9cdsncihquhs99ndso”
HTTPS 传输的不再是文本,而是二进制流,使得传输更高效,且加密处理更加安全。
HTTPS 的工作流程
1、客户端请求 HTTP