https建立的过程

首先知道httphttps有什么区别?

  • http使用端口80,https使用端口443
  • http运行在TCP协议上,所传输的内容那个都是明文,https运行在SSL/TLS上,SSl/TLS是运行在TCP上,所传输的内容是经过加密的
  • https需要在CA(数字证书认证机构) 购买证书
  • http + 加密 + 认证 + 完整性保护 = https
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层

https建立的过程

https建立的过程_第1张图片
1.客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

2.采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书,证书是需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书 (当然了是要钱的,安全级别越高价格越贵)。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。
https建立的过程_第2张图片

3.服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。Chrome 浏览器点击地址栏的锁标志再点击证书就可以看到证书详细信息。

4.客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。就像下面这样:
https建立的过程_第3张图片

5.客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

6.服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

7.服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

8.双方使用对称加密愉快地传输所有数据

该过程既使用了 对称加密也使用了非对称加密。在交换密钥期间都是使用非对称加密,建立之后使用对称加密。

  • 对称加密:加密和解密都使用同一把密钥
  • 非对称加密:一把叫作私有密钥,另一把叫作公开密钥,通过公钥加密的数据只能用私钥进行解密

由于https会消耗大量资源,网络负载会变慢,所以只有包含个人信息等敏感信息才会使用https进行通信。

tcp和udp的区别

https建立的过程_第4张图片

借鉴文章

你可能感兴趣的:(面试,https)