HTTPS如何建立连接?

3,544 阅读2分钟

什么是HTTPS?

HTTPS是HTTP的安全形式。由网景公司首创。URL以https://开头。HTTPS将HTTP协议与一组对称、非对称和基于证书的加密技术结合在一起。

HTTPS与HTTP的区别

HTTPS比HTTP多了一个安全层SSL,使用HTTPS时候,所有的请求和响应数据在发送到网络之前,都要进行加密。 大部分困难的编码及解码工作都是在SSL中完成的。

HTTPS建立连接流程

总结:浏览器看到url是https://开头的,会打开一个到服务器443端口的连接,一旦建立了TCP连接之后,就会初始化SSL层(即SSL握手),浏览器和服务器会对加密参数进行沟通,商量一个对称加密的密匙并交换。SSL握手之后,客户端就可以把数据报文发送给SSL安全层了,SSL将文件加密后传给TCP层; 服务器收到数据之后,TCP层拿到数据,会把数据给SSL安全层,SSL安全层解密之后给应用层使用。

SSL握手流程

  1. HTTPS建立了一个安全Web事务后,会自动获取所连接服务器的数字证书

  2. 如果服务器没有,安全连接就会失败。

  3. 如果服务器有,浏览器收到证书是会对签名颁发机构进行检查,这一步的目的是为了确定服务器身份。步骤:收到证书 -> 根据服务器公开密匙,来验证数字签名, 确定服务器身份.

  4. 如何验证数字签名流程图:

  5. 验证完服务器身份之后,客户端和服务器生成密匙

  6. 客户端和服务器互相告知密匙(使用迪菲赫尔曼协议或者RSA协议,都可以交换密匙),握手完成,开始加密过程

HTTP与HTTPS连接流程图

最后,对一些名词进行解释