HTTPS 建立连接的详细过程

简介

HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)

对称加密和非对称加密

  • 对称加密
    • 即加密的密钥和解密的密钥相同,
  • 非对称加密
    • 非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密

建立连接

  • HTTP和HTTPS都需要在建立连接的基础上来进行数据传输,是基本操作
  • 当客户在浏览器中输入网址的并且按下回车,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip
  • 当获取到ip后,tcp连接会进行三次握手建立连接

tcp的三次挥手和四次挥手

过程简图

三次挥手(建立连接)

  • 第一次:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
  • 第二次:服务器收到SYN包,向客户端返回ACK(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RCVD状态;
  • 第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
  • 完成三次握手,客户端与服务器开始传送数据,也就是ESTABLISHED状态。
  • 三次握手保证了不会建立无效的连接,从而浪费资源。

四次挥手(断开连接)

  • 第一次: TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
  • 第二次:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
  • 第三次:服务器关闭客户端的连接,发送一个FIN给客户端。
  • 第四次:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

HTTP请求过程

  • 建立连接完毕以后客户端会发送响应给服务端
  • 服务端接受请求并且做出响应发送给客户端
  • 客户端收到响应并且解析响应响应给客户

HTTPS

  • 在使用HTTPS是需要保证服务端配置正确了对应的安全证书
  • 客户端发送请求到服务端
  • 服务端返回公钥和证书到客户端
  • 客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端
  • 服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密
  • 客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户
  • SSL加密建立

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

Nginx HTTP Server中的SSL证书错误

安装SSL证书时快速解决Nginx HTTP服务器错误! Nginx HTTP Server是免费的开放源代码,它附带了高性能的HTTP服务器和反向代理。Ngi...

2628
来自专栏企鹅号快讯

Https全揭秘系列-Https简述

Https全揭秘系列 - Https简述 最近一段时间负责框架的Https相关开发和后续维护,从一无所知到略有了解,写一个Https系列文章,讲一讲自己的经验和...

2188
来自专栏非著名程序员

Android 面试 - 网络基础会问哪些问题及其解答

Android 面试中问到网络基础,基本是围绕 OSI 七层模型或者是 TCP/IP 四层模型展开的,主要包括各层名称及功能、每层有哪些协议。 另外会深入考察应...

1905
来自专栏闵开慧

xampp修改各端口号 Apache Service Detected With Wrong ...

Apache Service Detected With Wrong Path 17:12:00  [apache]     Uninstall the...

3586
来自专栏云计算教程系列

如何为Nginx创建自签名SSL证书

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供...

3542
来自专栏信安之路

无线渗透(下)—企业级WPA破解

1140
来自专栏云计算教程系列

为Apache创建自签名SSL证书

TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还...

53510
来自专栏友弟技术工作室

openSSH服务及其应用

1235
来自专栏青蛙要fly的专栏

Android技能树 — 网络小结(3)之HTTP/HTTPS

介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看,最好可以指出我的错误,让我也能纠正。

893
来自专栏技术博文

PHP使用DES进行加密和解密

DES是一种标准的数据加密算法,关于这个算法的详细介绍可以参考wiki和百度百科: wiki百科 百度百科 php中有一个扩展可以支持DES的加密算法,是:ex...

2776

扫码关注云+社区