## https * [1.https的访问过程](#1https的访问过程) * [详细解释:](#详细解释) * [2.https的优缺点?](#2https的优缺点) * [1. 优点](#1-优点) * [2、缺点](#2缺点) * [3.https如何进行性能优化?](#3https如何进行性能优化) * [1.https访问速度优化](#1https访问速度优化) * [2.https计算性能优化](#2https计算性能优化) * [4.http和https](#4http和https) * [5.HTTPS为什么是安全的?](#5https为什么是安全的) * [6.HTTPS相对于HTTP的缺陷?](#6https相对于http的缺陷) * [7.为什么需要证书?](#7为什么需要证书) * [8.怎么防止的篡改?](#8怎么防止的篡改) ### 1.https的访问过程 1.客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。 2.Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。 3.客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。 4.客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。 5.Web服务器利用自己的私钥解密出会话密钥。 6.Web服务器利用会话密钥加密与客户端之间的通信。 ![](https://gitee.com/WebInterviewHub/WebInterview/raw/master/imgs/https1.png) #### 详细解释: 1. 客户端发起HTTPS请求 用户在浏览器里输入一个https网址,然后连接到server的443端口。 2.服务端的配置 就是指上述提到的数字证书; 3.传送证书 Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。 4.客户端解析证书 客户端会对证书进行判断,验证公钥是否有效,存在问题弹出会警告;若没有问题,生成一个随机值(私钥),然后用证书继续进行加密; 5.传送加密信息 客户端将上加密后的随机值(私钥)提供给服务端,服务端会对其进行解密; 6.服务端解密信息 服务端解密后得到随机值(私钥),然后把内容通过该值进行对称加密。对称加密就是指把要返回的信息和随机值(私钥)混合加密,这样除非知道随机值(私钥),不然无法获取数据。 7.传输加密后的信息 继续将加密后的信息传递给客户端; 8.客户端解密信息 客户端用之前生成的私钥(随机值)解密服务端传过来的信息,于是获取了解密后的内容。 ### 2.https的优缺点? #### 1. 优点 1.正确发送数据到客户端 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器 2.更安全 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性 3.增加中间人攻击的成本 HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。 4.搜索排名更高 谷歌在2014跳转搜索算法,采用HTTPS加密的网站在搜索结果中的排名将会更高 百度也在2018年发布百度对HTTPS站点的扶持态度,表明HTTPS将作为优质特征之一影响搜索排序。 #### 2、缺点 1.页面渲染更耗时间 因为SSL的缘故,HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%; 2.成本增加 SSL证书需要花钱,功能越强大的证书费用越高; 3.HTTPS连接缓存不如HTTP高效 HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响; 4.SSL证书通常需要绑定IP SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。 5.有局限性 HTTPS