HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议。TLS 的前身是 SSL,TLS1.0 就是 SSL3.1,TLS1.1 是 SSL3.2,TLS1.2 则是 SSL3.3。HTTPS 标准端口是 443。TLS/SSL 中使用了非对称加密,对称加密以及 Hash 算法。算法
向 CA 机构提交申请,提交信息包括:浏览器
CA 机构收到证书申请,发送证书和私钥给申请者,证书包含这些信息:安全
签名就是在信息的后面再加上一段内容
CA 机构发送给申请者的私钥和证书中公钥是一对。这里的公钥用于加密,私钥用于解密。
客户端发送 Client Hello 给服务端,包含如下信息:网络
服务端收到请求后,发送 server Hello,包含如下信息:dom
证书加密
客户端收到请求后,将会作一下事情:操作系统
验证证书server
生成随机数域名
服务端ast
客户端/服务端
第一步要确认服务端的身份是否可信,才能进行下面的数据传输。证书的做用就是确认服务端身份,确认证书来自权威可信机构,且证书内容未做修改,证书内容可信,证书内容有效,从而确认服务端的身份。
以上只是单向认证,双向认证时客户端也要发送包含公钥的证书给服务端,服务端验证证书成功后,使用客户端的公钥加密通讯方案,再给客户端,而后客户端生成随机数 Pre-master,根据随机数生成的密钥加密传输数据。
服务端证书可信后,再使用申请证书时生成的公钥对随机数加密,服务端收到后用申请证书时生成的私钥解密。保证了随机数的安全性,不会被第三方解密获取。
传输数据的密钥根据随机数 Pre-master 生成的,因此随机数保密十分重要。